首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >println(字符串% s) vs println(对象o)

println(字符串% s) vs println(对象o)
EN

Stack Overflow用户
提问于 2010-09-16 15:46:59
回答 2查看 501关注 0票数 3

在我看来,PrintStream.print(Object x)PrintStream.println(Object x)PrintStream.print(String x)PrintStream.println(String x)是一样的。

两者兼而有之有什么显而易见的原因吗?它们有什么不同吗?API-docs-可读性?效率?

(对于自动装箱,我怀疑即使是以原语作为参数的print方法也是多余的……然而,这些方法早于自动装箱功能,所以这是可以解释的。)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-09-16 15:52:59

他们不会做同样的事情:

print(Object x)调用String.valueOf(x),后者返回:

代码语言:javascript
复制
(obj == null) ? "null" : obj.toString();

所以我们有一个额外的toString()方法。

结果是一样的,因为String.toString()返回this。但是为了便于使用API,不应该强迫用户理解这些细节。

票数 10
EN

Stack Overflow用户

发布于 2010-09-16 15:52:19

代码语言:javascript
复制
PrintStream.print(Object x)

打印由生成的字符串

代码语言:javascript
复制
String.valueOf(Object)

PrintStream.print(字符串x)

打印字符序列,如果为null,则打印null

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3724671

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档