了解泛型程序设计(一)

自从ASs升级到3.0以后,不用在对findViewById进行强转,因此我们可以用一个泛型来实现这类强制类型转换的代码,使其具有更好的安全性和可读性。
因此我们用泛型的形式来对findViewById进行封装下

代码如下

    private View mRootView = null;
    public <T extends View> T $(@IdRes int viewId) {
        if (mRootView != null) {
            return mRootView.findViewById(viewId);
        }
        throw new NullPointerException("rootView is null");
    }

在实际运用中我们就可以

mRefreshLayout = $(R.id.srl_index);
………………

是声明这是一个泛型方法,同时extends View限制了返回的类型必须是是View的子类

泛型程序设计以为着编写的代码可以被很多不同类型的对象所重用。例如,我们并不希望为聚集String和File对象分别设计不同的类。实际上,也不需要这样做,因为一个ArrayList类可以聚集任何类型的对象。这是一个泛型程序设计的实例。
实际上,在Java增加泛型类之前已经有一个ArrayList类。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值