为什么在String.valueOf而不是java null中返回"null"String?

Vis*_*ant 3 java

我正在检查String.valueOf方法,发现null传递给valueOf它时返回"null"字符串而不是纯java null.

我的问题是为什么有人会返回"null"字符串为什么不是纯java null.

public static String valueOf(Object obj) {
    return (obj == null) ? "null" : obj.toString();
}
Run Code Online (Sandbox Code Playgroud)

我问这个是因为开发人员必须检查字符串的equals方法"null"而不是stringObj != null.

[更新]:好的,这个问题有投票,我不是在api提出问题,但在我现在的公司有很多api返回"null"字符串而不是纯java null,这就是为什么我问这个问题,知道是否是它"null"如果找到null字符串对象,则返回字符串的最佳做法.

Man*_*iro 13

您正在寻找Objects#toString(java.lang.Object,java.lang.String)

电话

Objects.toString(obj, null)

当对象为空时返回空。


Kay*_*man 12

因为String.valueOf()返回一个String表示,对于一个null"null".

开发人员根本不应该检查返回值,因为它用于显示目的,而不是用于检查引用是否为null.