【发布时间】:2014-01-13 13:57:28
【问题描述】:
String.valueOf(null);
- 为什么会调用
valueOf(char[] c)而为什么不调用valueOf(Object o);?? - 为什么
String.valueOf(null);产生NullPointerException和String.valueOf((Object)null);不产生任何异常?
【问题讨论】:
-
因为 valueOf(char[] data) 是 null 可以适应的第一种方法(因为 Array 是 Object)。
-
将调用最具体的方法。
null不是对象,使char[] c更具体。 -
@ᴍarounᴍaroun
null是一个对象,与Object类型的赋值兼容。 -
@MarkoTopolnik 我不明白。 AFAIK,
null不是对象,实际上是对象的“不存在”。 -
OP,至于你的2.,Javadoc的引用会满足你,还是想撬开JDK API设计者的脑袋?