交叉引用与抽象类的绑定

时间:2019-04-25 11:04:32

标签: kotlin

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

0 个答案:

没有答案