java - 为什么 valueOf(null) 调用构造函数 valueOf(char[])

标签 java string value-of

String.valueOf(null);
  1. 为什么调用 valueOf(char[] c) 而为什么不调用 valueOf(Object o); ??
  2. 为什么 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/

相关文章:

java - 为什么spring有强制日志依赖?

java - Eclipse 在启动时挂起

c# - C# 中的静态常量

c - 在 C 中搜索文本文件中的字符串

java - 使用反射调用 Enum 子类类型的 valueOf() 时出现 NoSuchMethodError?

xslt - xsl :variable with xsl:value-of problem 的输出值

Java:valueOf 与 copyValueOf

java - 定义并执行接口(interface)的部分功能

java - 如何在netbeans中打印1到10并打印奇数和偶数?

python - 连接两行,如果它们不为空