2011-11-07 21 views
8

Tengo esta función con un código muerto, marcado por Eclipse.Eclipse marca líneas como código

Tengo dos líneas que marcan & b. Las líneas que marcan b están marcadas como nulas.

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;  

} 

¿Por qué Ellipse hace que las dos líneas estén muertas? ¿Alguna ayuda? Muchas gracias por tu tiempo.

+8

¿Hay algún otro código en ese método? Tal vez has estado desmarcando 'b' antes, lo que le dice a Eclipse que' b' no puede ser 'nulo' en este momento. En ese caso, también debería recibir una advertencia como "verificación nula innecesaria" en la línea 'if (b == null)'. –

+1

@Joachim +1000. –

+0

No sé mucho sobre * Eclipse * pero IntelliJ IDEA puede analizar su código en tiempo real y advertirle que es imposible acceder a algún código. En su caso, si IntelliJ detectara que * b * nunca fue * nulo *, entonces le advertiría que estas dos líneas nunca podrán ser alcanzadas porque la condición * b == null ** siempre es falsa. – TacticalCoder

Respuesta

15

Porque ya ha llamado scenarios.size() en su constructor de matriz. Esto garantiza que scenarios no es nulo o habrá lanzado una excepción en ese punto.

+0

Tienes razón. Gracias. – jn1kk

Cuestiones relacionadas