Aşağıdaki kod için oluşturulan bayt kodu, Derived
sınıfında private final Base $$delegate_0
alanı oluşturur. Değiştirilebilir alan b
atandığında, özgün temsilci değişmez.Kotlin'de, çalışma zamanında delegasyonu değiştirmek mümkün mü?
zero boilerplate
Uygulamasını kullanırken çalışma zamanında temsilci değiştirme yolu var mı?
interface Base { fun print() } class BaseImpl(val x: Int) : Base { override fun print() { println(x) } } class Derived(var b: Base) : Base by b fun main(args: Array) { val b = BaseImpl(10) val derived = Derived(b) derived.print()// prints 10 derived.b = BaseImpl(20) derived.print()// prints 10 }
örnek dokümanlar https://kotlinlang.org/docs/reference/delegation.html ve düzenlenmiş alınır.