首页 > 编程 > Java > 正文

java中泛型确切类型的确定

2019-11-08 19:52:47
字体:
来源:转载
供稿:网友

在写android MVP模式的框架时,发现了一个点,就是如果用泛型来简化代码。同时总结了一下确定泛型的确切类型的方法。目前发现了如下的两种方法,今后遇到了再继续追加。


一、在实例化的时候确定

就像是ArrayList的实例化,如:

ArrayList arrayList = new ArrayList<Bean>();

我们知道ArrayList<T> 类型是T是泛型,通过以上的实例化,我们就确定了该类型为Bean


二、通过继承来确定

看如下代码

BaseActivity<T extends BasePResenter> extends Activity { T presenter;}HomeActivity extends BaseActivity<HomePresenter> { public void onCreate(Intent intent) { presenter = new HomePresenter(); } public void invokeHomePresenterFun() { presenter.homePresenterFun(); // 这样就可以直接调用HomePresenter的homePresenterFun方法,而不用先对persenter进行强转了 }}

在定义HomeActivity的时候,通过extends BaseActivity<HomePresernter> ,同样可以确定BaseActivity里面的泛型T

比较如下代码,可以看的更清楚

BaseActivity extends Activity { BsePresenter presenter;}HomeActivity extends BaseActivity { public void onCreate(Intent intent) { presenter = new HomePresenter(); } public void invokeHomePresenterFun() { ((HomePresenter)presenter).homePresenterFun(); // 不使用泛型的时候,presenter的类型就是确定的BasePresenter,如果不强转编译器会报错 }}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表