Android - 在 kotlin 中重载 Application class 构造函数是否正确?
Android - Is it correct to overload the Application class constructor in kotlin?
有人提议在主应用程序中实现这样的东西 class:
class MyApplication(someProp = SomeClass()): Application {
init {
... do some initializations
}
}
我一直使用 OnCreate
方法来执行我的应用程序的所有初始化,我非常确信重载构造函数是错误的,即使它们是可选参数;但我有点怀疑它是否可行。
这将起作用,因为您为该构造函数参数提供了默认值,因此还会生成一个空的构造函数,这就是将要使用的构造函数。
但是,我看不出这样做有什么意义。 Application class 仅由 OS 实例化,它是通过调用空构造函数通过反射完成的。因此,通过添加此参数,它表明它还有其他一些预期用途,但这是不可能的情况。那是钝代码。将此 SomeClass()
实例化放在初始化块中会更有意义。
有人提议在主应用程序中实现这样的东西 class:
class MyApplication(someProp = SomeClass()): Application {
init {
... do some initializations
}
}
我一直使用 OnCreate
方法来执行我的应用程序的所有初始化,我非常确信重载构造函数是错误的,即使它们是可选参数;但我有点怀疑它是否可行。
这将起作用,因为您为该构造函数参数提供了默认值,因此还会生成一个空的构造函数,这就是将要使用的构造函数。
但是,我看不出这样做有什么意义。 Application class 仅由 OS 实例化,它是通过调用空构造函数通过反射完成的。因此,通过添加此参数,它表明它还有其他一些预期用途,但这是不可能的情况。那是钝代码。将此 SomeClass()
实例化放在初始化块中会更有意义。