下面一段代碼,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>() {
}