楼主的疑问,重点是弄清楚println()这个方法,当向这个方法中传入参数的时候,它调用了String.valueOf(Objec o),:
public void println(Object x) {
String s = String.valueOf(x);
synchronized (this) {
print(s);
newLine();
}
}
而String.valueOf(x)会去调用该对象的toString(),源码如下:
public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}
所以当传入t的时候,会调用t.toString()方法。 |