我知道您不能使用Java中的委托属性语法,也不会像Kotlin那样方便地“重写”set/get操作符,但我仍然希望在Java中使用现有的属性委托。例如,int的简单委托: operator fun getValue(thisRef: Any?, property: KProperty<*>) = 0当然,在Kotlin,我们可以这样使用:
val x by IntDelegat
Kotlin有委托属性,这是一个非常好的特性。但有时get()和set()方法是不够的。假设我想懒散地创建一个Closeable对象,然后稍后关闭它。下面是如何实现此类委托属性的示例: CloseableLazyVal(override fun close() {
stream::delegate.close() // This
我需要在Java中装饰一个实例,并希望委托在Kotlin中(更容易)。如何定义inner才能接收null?an error on the right innernew ConnectionDecorator(null).close();
*这是一个简化的例子,尝试在Java中使用Kotlin的委托,其中传递的内容可以为空。