Android - 在 kotlin 中重载 Application 类构造函数是否正确?

问题描述

有人提议在主 Application 类中实现这样的东西:

class MyApplication(someProp = SomeClass()): Application {
    init {
        ... do some initializations
    }
}

我一直使用 OnCreate 方法来执行我的应用程序的所有初始化,我非常确信即使它们是可选参数,重载构造函数也是错误的;但我有点怀疑它是否可行。

解决方法

这会起作用,因为您为该构造函数参数提供了默认值,因此还会生成一个空的构造函数,这就是将要使用的构造函数。

但是,我认为这样做没有任何目的。 Application 类仅由操作系统实例化,它是通过反射完成的,调用空构造函数。因此,通过添加此参数,它表明它还有其他用途,但这是不可能的情况。那是钝代码。将此 let emptyObjectCount = [offer,video,bday,promotional] .filter { !$0.isEmpty } .count 实例化放在初始化块中会更有意义。