Java Eclipse将行标记为死代码
我有一个带有一些死代码的函数,由Eclipse标记 我有两条检查a和b的线路。检查b的行被标记为空Java Eclipse将行标记为死代码,java,eclipse,dead-code,Java,Eclipse,Dead Code,我有一个带有一些死代码的函数,由Eclipse标记 我有两条检查a和b的线路。检查b的行被标记为空 public int[] runThis(List<Integer> buildIds, List<Integer> scenarios, boolean oflag) { int rating[] = new int[scenarios.size()]; if(buildIds == null) { System.out.pri
public int[] runThis(List<Integer> buildIds, List<Integer> scenarios, boolean oflag) {
int rating[] = new int[scenarios.size()];
if(buildIds == null) {
System.out.println("ERROR - Building ID list is null!");
return null;
}
if(scenarios == null) {
System.out.println("ERROR - Scenario list is null!"); //dead
return null; //dead
}
return rating;
}
public int[]runThis(列出buildid、列出场景、布尔值){
int rating[]=新int[scenarios.size()];
if(buildIds==null){
System.out.println(“错误-构建ID列表为空!”);
返回null;
}
如果(场景==null){
System.out.println(“错误-场景列表为空!”);//已死亡
返回null;//死
}
回报率;
}
为什么椭圆会使这两条线成为死线?有什么帮助吗?非常感谢您抽出时间。因为您已经在数组构造函数中调用了
scenarios.size()
。这保证了场景
不为null,否则它将在该点引发异常。该方法中还有其他代码吗?也许您以前一直在取消对b
的引用,这告诉Eclipse此时b
不能为null
。在这种情况下,您还应该在if(b==null)
行得到类似“不必要的空检查”的警告。我对Eclipse了解不多,但IntelliJ IDEA可以实时分析您的代码,并警告您某些代码无法访问。在您的情况下,如果IntelliJ检测到b从不为null,那么它将警告您永远无法到达这两行,因为条件b==null*始终为false。@Joachim:该特定警告可在Eclipse的设置中配置。我相信它是默认关闭的。你能粘贴整个方法吗?@BalusC:哦,我不记得了。我可能一听说就打开了;-)这些很有用。非常感谢你的解释。我没有意识到,由于之前的NPE,通过更早地评估某些东西,它保证不会到达那里,因此出现了“死代码”警告。