在我看来,PrintStream.print(Object x)
和PrintStream.println(Object x)
与PrintStream.print(String x)
和PrintStream.println(String x)
相同。
有两个明显的理由吗?他们有什么不同吗? API-docs的可读性?效率η
(通过自动装箱,我怀疑即使采用原语作为参数的打印方法也是多余的......但是这些方法早于自动装箱功能,因此可以解释。)
答案 0 :(得分:10)
他们做同样的事情:
print(Object x)
调用String.valueOf(x)
,返回:
(obj == null) ? "null" : obj.toString();
所以我们还有一个toString()
方法。
结果是相同的,因为String.toString()
会返回this
。但是为了便于API的使用,不应该强迫用户理解这些细节。
答案 1 :(得分:2)
PrintStream.print(Object x)
打印由
生成的字符串String.valueOf(Object)
但是
PrintStream.print(String x)
打印字符序列,如果null
它将打印为空