Pregunta

He tenido un gran problema en el código de alguna librería, que he precisado a una sola instrucción:

System.out.println((String) null);

Ok, el código no realmente se ven así, pero sin duda llama println con un argumento nulo. Hacer esto hace que toda mi applicaio para lanzar un NullPointerException inesperado.

En general, debe println lanzar esta excepción en virtud de esa circunstancia, o se trata de un comportamiento no estándar debido a una mala aplicación de la instancia out?

¿Fue útil?

Solución

La JVM de impresiones sol simplemente "nulos". Este es el comportamiento especificado de PrintStream.print(String) cuando se le da un argumento null.

Otros consejos

Ok, encontrado el error, en la ejecución de mi plataforma de PrintStream.print. Creo que voy a seguir con los desarrolladores.

public void print(String s) {
    // WHERE IS THE NULL CHECK??!
    for(int i=0;i<s.length();i++) {
        write(s.charAt(i));
    }
}

Gracias por lo que confirma que esto es de hecho un comportamiento no estándar.

Eso anterior no debería lanzar una excepción. ¿Estás segura de que no tenga algo como:

System.out.println(a.b);

donde a es null?

Por otra parte, tal vez su System.out ha sido ajustada a nulo (no muchas personas se dan cuenta de que se pueden establecer las corrientes out / err)?

Cuando intento esa línea en el escritorio estándar de Java (Java SE 6 actualización 20 en Mac OS X), que no lanza un NullPointerException, sólo se imprime null.

creo que lanzar una NullPointerException es un error en este caso.

Me acaba de intentar ejecutar este en JDK de Sun 6 y funcionó muy bien. Se impreso nula como se esperaba.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top