必威体育Betway必威体育官网
当前位置:首页 > IT技术

批量解决Casting 'findViewById(R.id.X)' to 'X' is redundant

时间:2019-07-05 12:44:50来源:IT技术作者:seo实验室小编阅读:66次「手机版」
 

redundant

Android Studio 中build.gradle(Module:APP) 如果compileSdkVersion >=26,进行findViewById操作会报 Casting 'findViewById(R.id.X)' to 'X' is redundant This inspection reports unnecessary cast expressions.

这里写图片描述

大意为findViewById前的强制类型转换是多余的。

        mRvMsg = (RecyclerView)findViewById(R.id.rv_msg);
        mEtPort = (EditText) findViewById(R.id.et_port);

产生上边的原因为,在compileSdkVersion >=26后,findViewById内部源码:

    @Nullable
    public <T extends View> T findViewById(@IdRes int id) {
        return getWindow().findViewById(id);
    }

返回值为范型T,且T extends View,因此不用向下强制类型转换。

而compileSdkVersion < 26,其内部源码:

  public View findViewById(int id) {
        throw new runtimeexception("Stub!");
    }

返回值类型为 View,是RecyclerView、EditText等控件的父类,所以必须进行向下的强制类型转换。

如果是新项目,个别几处手动去掉即可,对于更变编译版本的旧项目,且使用了大量的findViewById(没有使用ButterKnife),这时就需要进行批量删除,操作如下:

鼠标点击到警告的位置,然后按Alt+Enter,弹出修改方法

这里写图片描述

依次选择Cleanup code-Cleanup code on ...进入Specify Inspection Scope

,选择Whole project后确认即可去除项目中全部强制类型转换。

这里写图片描述

相关阅读

Android 沉浸式状态栏完美解决方案

注明下,这里只讲状态栏,导航栏后面看有没有必要再讲国内很多类似的文章, 我只想说一个字, 真tm乱! 我看不懂… 评论里面 全在

谷歌浏览器被7654恶意篡改主页解决办法

真的要吐槽一下U大师,使用它重做系统,浏览器居然被恶意篡改为7654,真是国产的软件,呵呵。。。 下面说一下解决办法把: 参考另一个博主

wimfilter.sys文件导致电脑蓝屏的图文解决方法

 我们在使用安全卫士、杀毒等产品扫描的时会出现蓝屏或是重启的问题,这是由于wimfilter.sys文件导致的,下面就和小编一起去看下wim

电脑F盘打不开无法访问的解决办法

当双击F盘时,出现无法访问的提示,如下图,象这样的情况,一般都是病毒引起,尤其是其它的盘都能打开,唯独只有F盘(或某个盘)打不开,这种情况

win10电脑自带的office突然变成英文解决办法

1、点击开始按钮,再点击齿轮图标打开Windows设置 2、点击“应用” 3、点击“应用和功能”,并右侧搜索框中搜索office 4、选择“我

分享到:

栏目导航

推荐阅读

热门阅读