【问题标题】:Generic inside a generic kotlin泛型 kotlin 中的泛型
【发布时间】:2019-06-05 03:51:21
【问题描述】:

我有一些抽象类BaseViewModelBaseActivity

abstract class BaseViewModel<N> : ViewModel(){}

我的目的是使用 N 作为接口传递给它,当任何viewModel 扩展到BaseViewModel 时,只需将其导航器传递给它。

但我在写BaseActivity 时遇到了问题。

abstract class BaseActivity<T : ViewDataBinding,V: BaseViewModel<???>> : AppCompatActivity() {}

应该是什么?

【问题讨论】:

    标签: android generics mvvm kotlin


    【解决方案1】:

    你的意思是这样的?

    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
    

    在这种情况下,如果你的接口没有继承泛型的父类,编译器会给你一个编译错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-03
      • 1970-01-01
      • 2017-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多