由于非空对象必须在构造初始化完成之前初始化,但是使用 lateinit 修饰该对象可以延迟初始化
public class MyTest {
lateinit var subject: TestSubject
fun setup() {
subject = TestSubject()
}
fun test() {
subject.method() // 直接解引用
}
}
要检测一个 lateinit var
是否已经初始化过,请在该属性的引用上使用 .isInitialized:
if (foo::bar.isInitialized) {
println(foo.bar)
}
网友评论