kotln的泛型问题

下面一段代码,Java 中不会报错,Kotlin 中却报错,请问如何解决?
就是我不想关心父类有哪些泛型参数,在Java中直接继承就好了,在Kotlin中怎么做呢?

Java
clipboard.png
Kotlin
clipboard.png

错误内容:
One type argument expected for class BaseActivity<P : BasePresenter<>> defined in kotlin.ui.other in file OtherActivity.kt

尝试过使用 Any 和 星投射 ,也报错,如下:
clipboard.png

clipboard.png

 

理解这个问题,要先理解Kotlin泛型,Kotlin语言中使用协变和逆变处理泛型,类似C#。当前这个问题的解决方案使用两个*代替Any即可。

abstract class BasePresenter<V, E> {}

abstract class BaseActivity<P: BasePresenter<*, *>> {}

class OtherActivity<P: BasePresenter<*, *>>: BaseActivity<P>() {
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章