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 respostas

Existe 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

questionAnswers(3)

yourAnswerToTheQuestion