String.valueOf(null)&String.valueOf(s)

Muk*_*esh 0 java

这不起作用(抛出Nullpointer异常)

String s =  null; 
System.out.println(s); 
System.out.println(String.valueOf(null));
Run Code Online (Sandbox Code Playgroud)

但这是

String s =  null; 
System.out.println(s); 
System.out.println(String.valueOf(s));
Run Code Online (Sandbox Code Playgroud)

为什么?无法得到.我想了解背后的逻辑.

luk*_*302 5

String.valueOf(null)调用valueOf(char data[])哪些调用new String(data)哪些访问value.length- > NPE.

String.valueOf(someString)调用valueOf(Object obj)它确实return (obj == null) ? "null" : obj.toString();


一般说明:请使用正确的IDE.这不是我的"知识"写这个问题,但只是我使用我的IDE约1分钟,看看实际上将调用哪些方法,我甚至没有运行代码.