Java String.valueOf (null) lanza NPE, pero Object a = null; String.valueOf (a) devuelve 'null' [duplicado]
Esta pregunta ya tiene una respuesta aquí:
¿Por qué String.valueOf (null) lanza una NullPointerException? 3 respuestas¿Existe una explicación del tipo de diseño de lenguaje lógico para el siguiente comportamiento (Java 7 y sospecho que las ediciones anteriores también):
Object a = null;
String as = String.valueOf(a); // as is assigned "null"
System.out.println(as+":"+as.length()); // prints: "null:4"
System.out.println ( String.valueOf(null)); // NPE