问题描述
我想在Kotlin代码中尝试一些带有委托属性的新东西。我在文档中发现的是,对于自定义委托属性,我需要创建带有强制性方法的类-getValue
和可选的setValue
,它们是文档中提到的接口的一部分:
您可以使用Kotlin标准库中的接口
ReadOnlyProperty
和ReadWriteProperty
将委托创建为匿名对象,而无需创建新类
我开始研究Kotlin的内置委托函数。我研究了lazy
函数的实现,如下所示:
public actual fun <T> lazy(initializer: () -> T): Lazy<T> = SynchronizedLazyImpl(initializer)
这是我的问题所在:它为什么真正起作用? Lazy
接口仅具有value
属性,并且有一些方法确定其值的初始化。 SynchronizedLazyImpl
仅此而已。它们都没有getValue
或setValue
方法,那么为什么Kotlin不会抱怨并成功编译?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)