Tag: 代表

访问Kotlin的财产代表

Kotlin已经委派了属性,这是一个非常好的功能。 但有时get()和set()方法是不够的。 假设我想要Closeable地创建一个Closeable对象并稍后关闭它。 下面是一个如何实现这样的委托属性的例子: fun <T : Closeable> closeableLazy(initializer: () -> T) = CloseableLazyVal(initializer) class CloseableLazyVal<T : Closeable>( private val initializer: () -> T ) : ReadOnlyProperty<Any?, T> { private var value: T? = null override fun get(thisRef: Any?, desc: PropertyMetadata): T { if (value == null) { value = initializer() } return value } […]