我正在检查String.valueOf
方法,发现当null
传递给valueOf
时,它返回"null"
字符串而不是纯java null
。为什么在String.valueOf而不是java null中返回“null”字符串?
我的问题是为什么有人会返回"null"
为什么不是纯java的字符串null
。
public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}
我问这是因为开发商将不得不与equals
方法来检查"null"
字符串,而不是像stringObj != null
。
[更新]:还好有向下票对这个问题,我不养的API,但在我目前的公司有很多API,返回"null"
字符串,而不是纯Java null
的问题,这就是为什么我问这个问题,知道如果我们找到null
字符串对象,返回"null"
字符串是否是最佳做法。
这就是它是如何表现出来的。主要用于打印(它非常有用*,如果通过'null',System.out.println不会错误) – Thilo
不要首先传递'null'吗? –
_“我在问这个,因为开发人员必须使用equals方法来检查”null“字符串,而不是像stringObj!= null。”_如果直接比较字符串,只需检查引用。否则,这意味着你的equals方法是基于不好的对象的字符串表示。 –