Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Eclipse将行标记为死代码_Java_Eclipse_Dead Code - Fatal编程技术网

Java Eclipse将行标记为死代码

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

我有一个带有一些死代码的函数,由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.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,通过更早地评估某些东西,它保证不会到达那里,因此出现了“死代码”警告。