[英]Generic inside a generic kotlin
I have some abstract class BaseViewModel
, BaseActivity
. 我有一些抽象类
BaseViewModel
, BaseActivity
。
abstract class BaseViewModel<N> : ViewModel(){}
My purpose using N to pass as an interface into it, and when any viewModel
extends to BaseViewModel
, just pass its navigator into. 我的目的是使用N作为接口传递给它,当任何
viewModel
扩展到BaseViewModel
,只需将其导航器传递给。
But I got a problem when write BaseActivity
. 但是在编写
BaseActivity
时遇到了问题。
abstract class BaseActivity<T : ViewDataBinding,V: BaseViewModel<???>> : AppCompatActivity() {}
what it should be? 应该是什么?
You mean like this? 你的意思是这样的?
abstract class BaseViewModel<N> : ViewModel(){}
abstract class BaseActivity<T : ViewDataBinding,V: BaseViewModel<Test>> : AppCompatActivity() {}
interface Test
You can make it even more protected, if you extend from base interface: 如果从基本接口扩展,则可以使其更受保护:
abstract class BaseViewModel<N:BaseTest> : ViewModel(){}
abstract class BaseActivity<T : ViewDataBinding,V: BaseViewModel<Test>> : AppCompatActivity() {}
interface Test:BaseTest
interface BaseTest
In that case, if you interface doesn't inherit generic's parent class, compiler will give you an error of compilation. 在这种情况下,如果您的接口没有继承泛型的父类,编译器将给您一个编译错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.