Próbuję napisać jakiś ogólny kod, ale nie mogę się pozbyć błędu Type of 'PROPERTY' is not a subtype of the overridden property
.Kotlin: nadpisanie ogólnej właściwości podtypu
Uproszczona wersja mojego kodu:
abstract class BaseP<V> {
var view: V? = null
}
abstract class BaseF {
fun smth() {
pp.view = this
}
abstract val pp: BaseP<BaseF>
}
abstract class SubF: BaseF() {
abstract override val pp: BaseP<SubF>
// Error:(20, 30) Type of 'pp' is not a subtype of the overridden property 'public abstract val pp: BaseP<BaseF> defined in BaseF'
}
Okazało się, że błąd może być @Suppress
-ed, ale wątpię, że jest najlepszy i jedyny sposób. Czy jest coś lepszego?
I ostatecznie nie mogę zrozumieć, dlaczego subtypeA<subtypeB>
nie jest podtypem baseA<baseB>
, czy ktoś może to wyjaśnić?
co linia wyrzuca błąd? – voddan