相关疑难解决方法(0)

为什么String.valueOf(null)抛出NullPointerException?

根据文档,该方法String.valueOf(Object obj)返回:

如果参数是null,那么一个字符串等于"null"; 否则,obj.toString()返回值.

但是当我尝试这样做时怎么样:

System.out.println("String.valueOf(null) = " + String.valueOf(null));
Run Code Online (Sandbox Code Playgroud)

它会引发NPE而不是?(如果你不相信,请亲自尝试!)

    Exception in thread "main" java.lang.NullPointerException
    at java.lang.String.(Unknown Source)
    at java.lang.String.valueOf(Unknown Source)

怎么会发生这种情况?文档对我说谎吗?这是Java中的一个主要错误吗?

java null api-design overloading nullpointerexception

122
推荐指数
3
解决办法
7万
查看次数

为什么将null转换为Object?

我发现一些代码我工作的地方的点null被强制转换Object,因为它是传递给方法.

为什么要这样做?

我知道这个问题涉及重载方法,并使用强制转换来确定要调用的方法版本.

但是如果没有执行强制转换,Object如果使用null参数调用该方法,那么如果选择的参数类型的重载方法不会超过该方法的任何其他匹配版本吗?那么演员还能做些什么呢?

java null

23
推荐指数
2
解决办法
8673
查看次数