2011-11-07 3 views
8

Eclipseでマークされたデッドコードでこの機能を使用しています。Eclipseはデッドコードとして行をマークします

私は&をチェックする2つの行を持っています。 bをチェックする行にはnullとマークされます。

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;  

} 

なぜ楕円は2つの線を無効にしますか?どんな助け?あなたのお時間をありがとう。

+8

他のコードはありますか?おそらく、前に 'b'の参照を外していたことがあります。これはEclipseに、' b'はこの時点で 'null 'にはならないと伝えます。その場合は、 'if(b == null)'行に "不要なヌルチェック"のような警告も表示する必要があります。 –

+1

@ Joachim +1000。 –

+0

私は* Eclipse *についてよく分かりませんが、IntelliJ IDEAはあなたのコードをリアルタイムで分析し、いくつかのコードが到達できないことを警告します。あなたの場合、IntelliJが* b *が決して* null *でないことを検出すると、* b == null **の条件が常にfalseであるため、これらの2つの行に到達できないことを警告します。 – TacticalCoder

答えて

15

すでに配列コンストラクタでscenarios.size()を呼び出しているためです。これにより、scenariosがnullでないことが保証されるか、その時点までに例外がスローされます。

+0

あなたは正しいです。ありがとう。 – jn1kk

関連する問題