String.valueOf(null)和String.valueOf(s)

时间:2019-01-18 10:50:25

标签: java

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

String s =  null; 
System.out.println(s); 
System.out.println(String.valueOf(null));

但这是

String s =  null; 
System.out.println(s); 
System.out.println(String.valueOf(s));

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

1 个答案:

答案 0 :(得分:5)

String.valueOf(null)调用valueOf(char data[]),依次调用new String(data),后者访问value.length-> NPE。

String.valueOf(someString)调用valueOf(Object obj)的{​​{1}}


一般说明:请使用正确的IDE。这不是我写这个问题的“知识”,而只是我使用我的IDE大约1分钟以查看实际上将调用哪些方法,我什至没有运行代码。