从android.view查找Bugs eclipse插件未经检查/未经确认的强制转换

时间:2014-06-10 08:50:42

标签: android eclipse findbugs

我想使用针对eclipse的Find Bugs插件测试我的应用程序,我遇到了这种错误:

未经检查/未确认的从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);

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

1 个答案:

答案 0 :(得分:3)

问题是FindBugs无法确定方法调用每次都会给出相同的结果。所以它必须假设测试中的结果不同以及演员发生的地方。

为了将此信息提供给FindBugs,请尝试以下方法:

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

这样,FindBugs可以看到检查的值和使用的值是相同的。