android.app.Activity
如果文档/教程说至少onCreate()
必须实现它的方法,那么为什么设计不抽象.
来自http://developer.android.com/guide/components/activities.html
您必须实现此方法.系统在创建活动时调用此方法.
即使没有明确提及,没有实现,没有任何意义android.app.Activity
,或者?我知道parrent需要在自己的实现中执行代码,onCreate()
但是当父级的一部分onCreate()
调用抽象回调方法时,肯定会有设计需要由开发人员实现.
此设计示例:
public abstract class Activity {
public abstract void implementThis(Object o);
public void onCreate(Object o){
//Do stuff
implementThis(o);
//Do other stuff or end.
}
}
Run Code Online (Sandbox Code Playgroud)
我在这里错过了什么吗?Activity
如果开发人员必须并且需要将其子类化并提供自定义实现,为什么会出现非抽象的?
我一直在阅读设计模式:可重复使用的面向对象软件的元素, 并得到了部分解释aggregation
和acquaintance
.这是摘录(对不起,如果它太长了,但我认为解释这个问题很重要):
Run Code Online (Sandbox Code Playgroud)Consider the distinction between object aggregation and acquaintance and how differently they manifest themselves at compile- and run-times. Aggregation implies that one object owns or is responsible for another object. Generally we speak of an object having or being part of another object. Aggregation implies that an aggregate object and its owner have identical lifetimes. Acquaintance implies that an object merely knows of another object. Sometimes acquaintance is called "association" or the "using" …
我喜欢正确记录的代码,对于我来说,描述合同的正确记录的公共方法是明智的,同样适用于私有或包内部方法来解释代码内部/实现.
但是我不确定我是否应该采用非公开和不受保护的方法:
fireSomeEvent
乍一看它的作用是显而易见的,因为这只会使代码混乱这是什么标准方法?
我一直收到以下错误:
Failed to instantiate SLF4J LoggerFactory
Reported exception:
java.lang.NoClassDefFoundError: org/slf4j/spi/LoggerFactoryBinder
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:270)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1562)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1420)
at org.slf4j.LoggerFactory.bind(LoggerFactory.java:129)
at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:108)
at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:302)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:276)
at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:156)
at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:132)
at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:274)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:282)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:106)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4830)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5276)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:726)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:702)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:698)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:968)
at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1742)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at …
Run Code Online (Sandbox Code Playgroud) 是否有一种标准方法可以在 Spring Boot 中配置已创建的 bean,即不创建自己提供此 bean,而是以某种方式将该 bean 注入到配置类中的挂钩方法中并执行其他类?
例如,我希望 ThymeleafTemplateResolver
由其自动配置创建,但我想更改一个属性。
做到这一点的最佳方法是什么(同样,不是通过提供我自己的TemplateResolver
)?
让records
流/集合和extract
函数转换数据形成这种集合的元素.
Kotlin有没有办法写作
records.map {extract(it)}
Run Code Online (Sandbox Code Playgroud)
没有明确申请(it)
?
例如records.map(extract)
或records.map {extract}
所以我决定尝试Codility。第一个任务 - FrogJmp非常简单,但令我惊讶的是我的得分为 44%。解决方案,即使正确在性能方面显然是不可接受的。
原解决方案:
public int solution2(int X, int Y, int D) {
return (int) Math.ceil((float)(Y -X)/D);
}
Run Code Online (Sandbox Code Playgroud)
所以我决定用不同的代码尝试一下,没有浮点算法。
public int solution(int X, int Y, int D) {
int diff = Y - X;
if (diff % D == 0)
return diff /D;
else
return diff/D + 1;
}
Run Code Online (Sandbox Code Playgroud)
这次我得了100%。所以我想自己检查性能并编写简单的测试:
class Solution {
public int solution(int X, int Y, int D) {
int diff = Y - X;
if (diff % D == 0)
return diff …
Run Code Online (Sandbox Code Playgroud) 我正在阅读Python(3.4)中的类,根据我的理解,似乎每个新对象都有自己的绑定方法实例.
class A:
def __init__(self, name):
self.name = name
def foo(self):
print(self.name)
a = A('One')
b = A('Two')
print(a.foo == b.foo)
Run Code Online (Sandbox Code Playgroud)
这个的输出是False
.
这在我看来是浪费记忆.我认为这是内部的,a.foo
并且b.foo
会以某种方式在内部指向内存中的一个函数:A.foo
在哪里self
传递类实例.
我认为这可能无法在语言中轻松实现.
每个新实例是否还包含其绑定方法的新实例?
如果是这样,这对于创建新对象的性能是否有害,或者比在Java中的对象之间"共享"方法的其他语言更谨慎?
我想自动化 GPG 私钥导出,以便它无需用户交互即可运行。
gpg --export-secret-keys my@email.com
Run Code Online (Sandbox Code Playgroud)
我尝试提供--batch --passphrase-fd 0
参数,密码短语传递为:
--passphrase 'my-passhrase'
echo 'my-passphrase' | gpg ...
它不起作用。是否可以在没有用户交互的情况下导出私钥?