2015-11-24 72 views
0

我正在检查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"字符串是否是最佳做法。

+2

这就是它是如何表现出来的。主要用于打印(它非常有用*,如果通过'null',System.out.println不会错误) – Thilo

+0

不要首先传递'null'吗? –

+0

_“我在问这个,因为开发人员必须使用equals方法来检查”null“字符串,而不是像stringObj!= null。”_如果直接比较字符串,只需检查引用。否则,这意味着你的equals方法是基于不好的对象的字符串表示。 –

回答

9

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

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

0

因为你只想要null的字符串表示,所以它做到了。 此方法的用途是返回字符串表示。

检查链接String.valueOf

相关问题