这不起作用(抛出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));
为什么?无法获得。我想了解背后的逻辑。
答案 0 :(得分:5)
String.valueOf(null)
调用valueOf(char data[])
,依次调用new String(data)
,后者访问value.length
-> NPE。
String.valueOf(someString)
调用valueOf(Object obj)
的{{1}}
一般说明:请使用正确的IDE。这不是我写这个问题的“知识”,而只是我使用我的IDE大约1分钟以查看实际上将调用哪些方法,我什至没有运行代码。