在Kotlin,是否有可能在运行时改变代表团?
为以下代码生成的字节码在Derived
类中创建一个private final Base $$delegate_0
字段。 当可变字段b
被分配时,原始委托不会更改。
有没有办法在运行时更改委托,同时保持zero boilerplate
实施?
接口Base { 有趣的打印() } class BaseImpl(val x:Int):Base { 重写fun print(){println(x)} } 派生类(var b:Base):基于b fun main(args:Array){ val b = BaseImpl(10) val derived =派生(b) derived.print()//打印10 derived.b = BaseImpl(20) derived.print()//打印10 }
该示例来自文档https://kotlinlang.org/docs/reference/delegation.html并进行编辑。
不,从版本1.1开始,Kotlin不支持这个功能,但是这个版本正在考虑中。 这由此功能请求跟踪。