String.valueOf(null);
- 为什么调用
valueOf(char[] c)
而为什么不调用valueOf(Object o);
?? - 为什么
String.valueOf(null);
会产生一个NullPointerException
并且String.valueOf((Object)null);
不产生任何异常?
最佳答案
只要超过一种重载方法成为可能的目标,就会使用最具体的方法。
所以如果你传入一个 char[]
那么 valueOf(char[])
和 valueOf(Object)
是可能的,但是valueOf(char[])
更具体。因此,将调用那个。
现在 null
有点奇怪,因为它是每个非基本类型的合法值,所以它可以是任何这些方法的参数。并且 仍然 valueOf(char[])
比 valueOf(Object)
更具体,因此将调用第一个。
关于java - 为什么 valueOf(null) 调用构造函数 valueOf(char[]),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21093034/