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>() {
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章