Java String.valueOf (null) lança o NPE, mas o objeto a = null; String.valueOf (a) retorna 'nulo' [duplicado]
Esta questão já tem uma resposta aqui:
Por que String.valueOf (null) lança um NullPointerException? 3 respostasExiste uma explicação lógica do tipo de design de linguagem para o comportamento a seguir (o Java 7 e eu também suspeitamos de edições anteriores):
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