我有一些抽象类BaseViewModel
,BaseActivity
。
abstract class BaseViewModel<N> : ViewModel(){}
我的目的是使用 N 作为接口传递给它,并且当任何viewModel
扩展到BaseViewModel
时,只需将其导航器传递给它即可。
但是写BaseActivity
时遇到问题。
abstract class BaseActivity<T : ViewDataBinding,V: BaseViewModel<???>> : AppCompatActivity() {}
应该是什么?
答案 0 :(得分:0)
您的意思是这样吗?
abstract class BaseViewModel<N> : ViewModel(){}
abstract class BaseActivity<T : ViewDataBinding,V: BaseViewModel<Test>> : AppCompatActivity() {}
interface Test
如果从基本界面扩展,则可以使其受到更多保护:
abstract class BaseViewModel<N:BaseTest> : ViewModel(){}
abstract class BaseActivity<T : ViewDataBinding,V: BaseViewModel<Test>> : AppCompatActivity() {}
interface Test:BaseTest
interface BaseTest
在这种情况下,如果您的接口不继承泛型的父类,则编译器会给您一个编译错误。