小编vis*_*nny的帖子

如何检查“lateinit”变量是否已在扩展方法内初始化?

我想检查扩展方法中是否初始化了 Lateinit 属性。我想在扩展方法内安全地执行对 Lateinit 属性的简单函数调用。

我可以用this::property.isInitialized

想要写一些扩展,例如:

fun <T> T?.executeSafety(func: T.() -> (Unit)) { this?.func() }
Run Code Online (Sandbox Code Playgroud)

然后我们可以轻松地在 Lateinit 属性上执行简单的方法。请帮忙解决这个问题

android kotlin kotlin-android-extensions kotlin-lateinit

6
推荐指数
1
解决办法
3497
查看次数

Kotlin-我们如何使用getter和setter访问私有财产?访问方法在内部调用吗?

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的正确方法是什么?

java android kotlin

-2
推荐指数
1
解决办法
3339
查看次数