下面一段代码,Java 中不会报错,Kotlin 中却报错,请问如何解决?
就是我不想关心父类有哪些泛型参数,在Java中直接继承就好了,在Kotlin中怎么做呢?
Java
Kotlin
错误内容:
One type argument expected for class BaseActivity<P : BasePresenter<, >> defined in kotlin.ui.other in file OtherActivity.kt
尝试过使用 Any 和 星投射 ,也报错,如下:
理解这个问题,要先理解Kotlin泛型,Kotlin语言中使用协变和逆变处理泛型,类似C#。当前这个问题的解决方案使用两个*代替Any即可。
abstract class BasePresenter<V, E> {}
abstract class BaseActivity<P: BasePresenter<*, *>> {}
class OtherActivity<P: BasePresenter<*, *>>: BaseActivity<P>() {
}