我想检查扩展方法中是否初始化了 Lateinit 属性。我想在扩展方法内安全地执行对 Lateinit 属性的简单函数调用。
我可以用this::property.isInitialized。
想要写一些扩展,例如:
fun <T> T?.executeSafety(func: T.() -> (Unit)) { this?.func() }
Run Code Online (Sandbox Code Playgroud)
然后我们可以轻松地在 Lateinit 属性上执行简单的方法。请帮忙解决这个问题
class Sample1 {
private var test = ""
get() = field
set(value) {
field = value
}}
Run Code Online (Sandbox Code Playgroud)
这是我的课。我想将该属性保留为私有,并且必须通过getter和setter访问该属性。
var sample1 = Sample1()
Run Code Online (Sandbox Code Playgroud)
我试图创建一个对象并访问该属性,但是失败了。当我浏览文档时,我会发现一件有趣的事:“ Getters始终具有与属性相同的可见性”。链接
Kotlin的正确方法是什么?