Próbuję przedłużyć, w Javie, a Kotlin delegowanie klasę i pojawia się następujący błąd:Czy mogę przedłużyć w Javie zajęcia delegujące Kotlin?
Cannot inherit from final 'Derived'
widoczny poniżej kod.
Co staram się zrobić, to udekorować metodę klasy.
Każdy pomysł, dlaczego Kotlin zdefiniował Derived
jako ostateczny? Czy istnieje sposób, aby Derived
nie był ostateczny, więc mogę go odziedziczyć?
Java:
new Derived(new BaseImpl(10)) { // Getting the error on this line: `Cannot inherit from final 'Derived'`
};
Kotlin:
interface Base {
fun print()
}
class BaseImpl(val x: Int) : Base {
override fun print() { print(x) }
}
class Derived(b: Base) : Base by b
* Przykład stąd: https://kotlinlang.org/docs/reference/delegation.html