gpt4 book ai didi

java - 在 Java 中显式使用 toString() 方法打印对象的任何原因

转载 作者:行者123 更新时间:2023-12-02 08:51:08 24 4
gpt4 key购买 nike

只是想知道是否有任何理由在对象上显式调用 toString() 来打印它?

MyClass obj = new MyClass(); // Assume toString() method is overriden in this class
System.out.println(obj);

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

我显然使用第一种方法,但我的一位同事认为我应该放回 obj.toString()!我觉得 toString() 只是多余的,不使用它实际上减少了 NPE 的机会!

我是否遗漏了某些内容,或者人们有任何理由显式使用 toString() 吗?

最佳答案

System.outPrintStream 的一个实例。如果您调用println(),您将调用以下代码:

public void println(Object x) {
String s = String.valueOf(x);
synchronized (this) {
print(s);
newLine();
}
}

因此,尽管使用了String.valueOf,但它只是转换为String。区别在于,String.valueOf(null)"null",并且如果对象不是 ,则无论如何都会调用 toString() >空。但是在 null 上调用 toString() 肯定会导致 NullPointerException

所以,使用前者。它更简单并且可以处理 null

关于java - 在 Java 中显式使用 toString() 方法打印对象的任何原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21056187/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com