为什么当 class 继承了另一个打开的 class Android Kotlin 时 init 块不执行?
Why init block not executing when a class inherited another open class Android Kotlin?
我有这样的 BaseClass:
open class BaseClass(private var context: Context) {
init{
println("BaseClass init called")
}
}
和 ChildClass 像这样:
class ChildClass(private var context: Context) : BaseClass(context) {
init{
println("ChildClass init called")
}
}
所以这样称呼它:
context?.let { ChildClass(it) }
但没有调用任何 init 函数。
println
在 控制台 中打印日志。要打印登录 logcat,您必须使用 Log.
,例如:
init{
//println("BaseClass init called")
Log.v("TAG", "BaseClass init called")
}
我认为您的上下文在这一行中为空:
context?.let { ChildClass(it) }
我有这样的 BaseClass:
open class BaseClass(private var context: Context) {
init{
println("BaseClass init called")
}
}
和 ChildClass 像这样:
class ChildClass(private var context: Context) : BaseClass(context) {
init{
println("ChildClass init called")
}
}
所以这样称呼它:
context?.let { ChildClass(it) }
但没有调用任何 init 函数。
println
在 控制台 中打印日志。要打印登录 logcat,您必须使用 Log.
,例如:
init{
//println("BaseClass init called")
Log.v("TAG", "BaseClass init called")
}
我认为您的上下文在这一行中为空:
context?.let { ChildClass(it) }