我想知道人们在Java中使用toString()方法的内容。
我一直在为一些新类添加一些,并且想知道它是否应该包含类名。
在班级ClassConfig
我无法决定是否应该
@Override
public String toString() {
return "ClassConfig:" + name; //frozen
}
或
@Override
public String toString() {
return name; //frozen
}
尼尔
答案 0 :(得分:4)
这是案例问题。如果您的目的是调试,那么我想包括类名要好得多。
答案 1 :(得分:3)
这在很大程度上取决于是否有必要将您的类表示为String。如果它有意义,让它返回一个可以使用的String,那么在这种情况下类名将不会非常有用。如果字符串表示可能永远不会被用于某事,请将类名,变量的当前状态以及您喜欢的任何内容放入其中。
答案 2 :(得分:3)
除了字段值之外,我还会包括类名和字段名。甚至可以拨打super.toString()
。
喜欢在:
@Override
String toString() {
return "ClassConfig{" +
"name=" + name +
"} " + super.toString();
}
答案 3 :(得分:1)
由你自己决定把你想要的东西放在toString()中。通常,toString()用于使对象可读。 默认情况下,toString()显示一个不可读的计算机地址。
例如,很多人会实现类似这样的类:
public class Price {
private double price = 10.0;
private String ccy = "€";
@Override
public String toString() {
return price + " " + ccy; //will display "10.00000000 €"
}
}
答案 4 :(得分:0)
您可以让toString()方法返回您喜欢的任何内容。到目前为止,我从来没有覆盖toString()来返回类名。
答案 5 :(得分:0)
我个人希望将类名和键属性放在要打印的类中,这在调试过程中非常有用。