从android.view查找未经检查/未经确认的错误eclipse插件

从android.view查找未经检查/未经确认的错误eclipse插件,android,eclipse,findbugs,Android,Eclipse,Findbugs,我想使用eclipse的Find Bugs插件测试我的应用程序,我发现了这样的bug: 从android.view.view到android.widget.EditText的未检查/未确认强制转换返回值 代码部分是这样的: ((EditText) findViewById(R.id.EditText)).setEnabled(true); 那么什么是错误呢? 我试着这样写: if(findViewById(R.id.otherEditText) instanceof EditText)

我想使用eclipse的Find Bugs插件测试我的应用程序,我发现了这样的bug:

从android.view.view到android.widget.EditText的未检查/未确认强制转换返回值

代码部分是这样的:

((EditText) findViewById(R.id.EditText)).setEnabled(true);
那么什么是错误呢? 我试着这样写:

if(findViewById(R.id.otherEditText) instanceof EditText)
    ((EditText) findViewById(R.id.otherEditText)).setEnabled(true);

但是没有结果,出现了相同的错误

问题是FindBugs无法确保每次方法调用都给出相同的结果。因此,它必须假设测试的结果不同,并且在哪里进行转换

要将此信息提供给FindBugs,请尝试以下操作:

  • findViewById(R.id.otherEditText)
    的结果分配给临时变量而不强制转换
  • 然后使用变量执行
    if
    和强制转换

通过这种方式,FindBugs可以看到检查的值和使用的值是相同的。

感谢它的工作。把你的评论作为回答,我会接受的!