问题描述
有人提议在主 Application 类中实现这样的东西:
class MyApplication(someProp = SomeClass()): Application {
init {
... do some initializations
}
}
我一直使用 OnCreate
方法来执行我的应用程序的所有初始化,我非常确信即使它们是可选参数,重载构造函数也是错误的;但我有点怀疑它是否可行。
解决方法
这会起作用,因为您为该构造函数参数提供了默认值,因此还会生成一个空的构造函数,这就是将要使用的构造函数。
但是,我认为这样做没有任何目的。 Application 类仅由操作系统实例化,它是通过反射完成的,调用空构造函数。因此,通过添加此参数,它表明它还有其他用途,但这是不可能的情况。那是钝代码。将此 let emptyObjectCount = [offer,video,bday,promotional]
.filter { !$0.isEmpty }
.count
实例化放在初始化块中会更有意义。