我有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中的相等代码可以完美运行