将Java泛型转换为Kotlin泛型

时间:2019-10-31 09:08:00

标签: java generics kotlin

我有Android Java代码,并尝试转换为Android Kotlin。我已经尝试了多种方法将代码转换为Kotlin,但没有成功。

我的Java代码如下,

public abstract class BaseVM<N> extends ViewModel {
/*Class Body*/
}
public abstract class BaseActivity<T extends ViewDataBinding, V extends BaseVM>{
/*Class Body*/
}

按以下方式转换为Kotlin,

abstract class BaseVM<N> : ViewModel() {
/*Class Body*/
}
abstract class BaseActivity<T : ViewDataBinding, V : BaseVM>{ // Here Error is *One Type Argument is expected for class BaseVM<N>*
/*Class Body*/
} 

但是出现以下错误 类BaseVM需要一个类型参数

预先感谢您的回复。

1 个答案:

答案 0 :(得分:4)

在这里,您应将*作为一种类型参数传递。您必须像下面这样声明您的 BaseActivity

abstract class BaseActivity<T : Activity, V : BaseVM<*>>