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 并且 Snapshot 可以访问 Element
但是由snapshot.element = this
编译器说
Type mismatch.
Required: E
Found: Element<E, S>
我该如何解决?Java 中的相等代码完美运行
解决方案
推荐阅读
- java - Java 将 String 转换为 Object,然后再转换为 JSON
- php - 将 Symfony5-app 推送到 Heroku 时,清除缓存会引发错误
- c# - 转换列表
到 JSON 失败 - reactjs - 用 Jest 抛出的异步测试
- sql - QueryException : SQLSTATE [42S02] 未找到基表或视图
- tensorflow - 保存预处理 TensorFlow Transform 函数
- python - 如何在 Apache nifi 中使用 python 打印?
- javascript - Reactjs 为除一个之外的所有组件添加 javascript 代码
- laravel - Mpdf laravel 花费太多来为 50k 记录生成 pdf
- ios - 导航到 Xamarin 表单中的上一个选项卡式页面