在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不支持这个function,但未来版本正在考虑这个function。 这由此function请求跟踪。