Sayem
Sayem

Reputation: 131

Convert Java generic to Kotlin Generic

I have Android Java code and tried to convert to Android Kotlin. I have tried in many ways to convert my code to Kotlin but didn't succeed.

I have code in Java as below,

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

Converted to Kotlin as below,

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*/
} 

But I get the following error One Type Argument is expected for class BaseVM

Thanks in advance for your kinds reply.

Upvotes: 0

Views: 182

Answers (1)

Muhammad Shakeel
Muhammad Shakeel

Reputation: 120

Here you should pass * as One Type Argument. You have to declare your BaseActivity like below:

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

Upvotes: 4

Related Questions