java - programacion - Por qué los atributos de nivel de clase funcionan con Null
miembros de una clase en programacion orientada a objetos (1)
Creo que lo siguiente arrojaría NullPointerException
class N {
static int i;
public static void main( String ... args ) {
System.out.println( ((N)null).i );
}
}
Pero no es así ¿Por qué?
Porque i
miembro estático (nivel de clase). Existe para la clase, para cada objeto de ella. Por lo tanto, realmente no requiere referencia al objeto, por lo que esta parte ((N)null)
se ignora en realidad, a excepción de la inferencia de tipo. Podría y debería ser reemplazado por Ni
.