如何避免将抽象类转换为子类?

鲍尔·马里乌斯(Bauer Marius):

我的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),我已经阅读了有关通用自键入的内容,但不了解在这种确切情况下如何运作。

FireLion90:

如果要protected BaseViewModel mViewModel;使用泛型类型,则应按以下方式重写类:

public abstract class BaseActivity<T> extends AppCompatActivity{
        protected T mViewModel;
    }

 public class MainActivity extends BaseActivity<MainActivityViewModel >{ ... }

我希望我回答了你的问题。如果我不这样做,您还能解释一下吗?

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章