內的println方法,我只是寫了這個代碼:調用的println
public class T
{
public String toString()
{
System.out.println("new line");
return " "+4;
}
}
和:
public static void main(String[] args)
{
T t = new T();
System.out.println("11"+t);
}
,雖然我希望它打印
11 new line
4
它實際上印刷:
new line
11 4
這是爲什麼? 這種印刷的順序是什麼?這背後的邏輯是什麼?
謝謝!
你的程序應該如何連接字符串'「11」+ t'在調用' String.valueOf(Object)'for't'(它自己在該對象上調用'toString')?沒錯,在String串聯之前它不能這麼做,因此顯然在將這個串聯的字符串從'main'方法傳遞給'println'之前。 – Tom
因爲在第二次調用'println'之前評估'「11」+ t'。 –
使用調試器並遍歷代碼,您將很快了解執行順序。 – Andreas