java - System.out.println() 中的 toString() 方法两次调用?

标签 java printing double call tostring

我的一个教授曾经说过下面的代码永远不应该做:

System.out.println(object.toString());

他说(我相信引用了“Effective Java”)它会导致双重调用。由于 print 语句调用对象的 toString 方法,因此调用两次 toString 方法效率较低。首选方法是只使用:

System.out.println(object);

显然这种方式在代码中看起来更好并且会节省时间。无论如何我都会这样做,但我的问题是“这实际上更有效吗?”。在翻看PrintStream在文档中,print 方法已被重载以将 String 作为参数(如果首先调用 toString 方法就会出现这种情况)。我没有看到该版本的 print 方法在哪里调用输入参数的 toString 方法,我认为这样做没有意义。

此外,抱歉,如果这是重复的。我找不到关于它的任何主题。

最佳答案

您的示例在 PrintStream 中调用了两种不同的方法。两者都最多调用一次 toString()

但是,使用 System.out.println(object) 有一个潜在的优势。如果 object 为 null,则打印“null”。另一个语句抛出 NullPointerException。

关于java - System.out.println() 中的 toString() 方法两次调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16570937/

相关文章:

java - 星火 java : Creating a new Dataset with a given schema

c++ - 在 qt 中打印阿拉伯文本的替代方法

java - 将字符串乘以 double

double - 使用 XORShift 生成器生成 double

java - AsyncTask 中的 Runnable 是否会阻止服务/Activity ?它对我有用

java - 如何从 Domino Java 代理调度 Xagent?

css - 从 Internet Explorer 8 打印时,我需要为不透明度设置哪种 CSS 样式?

python - Python BeautifulSoup不打印()

c - 如何在arduino中将double的int部分和小数部分转换为两个整数

java - 单击按钮后文本未更改