我的Android应用程序具有以下结构:
public abstract class BaseActivity extends AppCompatActivity{
protected BaseViewModel mViewModel;
}
public abstract class BaseViewModel extends ViewModel { ... }
public class MainActivityViewModel extends BaseViewModel { ... }
public class MainActivity extends BaseActivity{ ... }
现在在MainActivity中初始化BaseViewModel时,我希望理想地将类型输入为通用类型,因此我不必每次都将其强制转换为子实现((MainActivityViewModel)mViewModel),我已经阅读了有关通用自键入的内容,但不了解在这种确切情况下如何运作。
如果要protected BaseViewModel mViewModel;
使用泛型类型,则应按以下方式重写类:
public abstract class BaseActivity<T> extends AppCompatActivity{
protected T mViewModel;
}
public class MainActivity extends BaseActivity<MainActivityViewModel >{ ... }
我希望我回答了你的问题。如果我不这样做,您还能解释一下吗?
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句