2

有人提议在主应用程序类中实现这样的东西:

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

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

4

1 回答 1

3

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

但是,我认为这样做没有任何目的。Application 类仅由操作系统实例化,并且通过调用空构造函数通过反射完成。因此,通过添加此参数,它表明它还有其他预期用途,但这是不可能的情况。那是钝码。SomeClass()将此实例化放在初始化块中会更有意义。

于 2021-06-01T18:49:26.700 回答