我知道在Java中无法使用委托属性语法,并且不会像Kotlin那样方便地“覆盖”set/get运算符,但我仍然想在Java中使用现有的属性委托。
例如,一个简单的int委托:
class IntDelegate {
operator fun getValue(thisRef: Any?, property: KProperty<*>) = 0
}
当然,在 Kotlin 中我们可以这样使用:
val x by IntDelegate()
但是我们如何在Java中以某种形式使用IntDelegate
呢? 我认为这是一个起点:
final IntDelegate x = new IntDelegate();
然后直接使用函数。但是我该如何使用 getValue
函数?我需要传递什么参数?如何为Java字段获取 KProperty
?