java.lang.Object提供了toString方法的一个实现,但是它返回的字符串通常不是我们期望看到的。它包含类的名称,以及一个“@”符号,接着是散列码的无符号十六进制表示法。例如“String@124b81”
Object的toString源码如下:
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
从上面可以看出默认情况下toString方法返回的字符串不是简洁和易于阅读。所以“建议所有的子类都覆盖这个方法”。提供好的toString实现可以使类用起来更加舒适。对象被传递给println、字符串+以及调试器打印出来时,toString方法就会自动被调用,如果覆盖了toString方法,提供好的toString方法,将有益于查看对象信息。
例子
public static void main(String[] args) {
System.out.println(new Foo());
}
@Override
public String toString() {
return "Foo类的toString方法将被调用";
}
打印结果:
Foo类的toString方法将被调用