У меня есть 2 абстрактных класса
abstract class Element<E : Element<E, S>, S : Snapshot<S, E>> {
var snapshot: S
init {
snapshot = ((this.javaClass.getGenericSuperclass() as
ParameterizedType).actualTypeArguments[0] as Class<S>).newInstance()
snapshot.element = this
// This is solution snapshot.element = this as E
}
}
abstract class Snapshot<S : Snapshot<S, E>, E : Element<E, S>>{
lateinit var element: E
}
Я хочу связать оба с помощью инициализации Element
Каждый элемент имеет только один снимок, и моментальный снимок может получить доступ к элементу
Но к snapshot.element = this
компилятор говорит
Type mismatch.
Required: E
Found: Element<E, S>
Как я могу решить это?
Равный код в Java отлично работает