我只是写了这段代码:
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
这是为什么?
此打印的顺序是什么,其背后的逻辑是什么?
谢谢!
最佳答案
toString的调用发生在“ 11”打印之前。
原因(如@Tom所说),为了使字符串缩进,必须先创建所有片段,然后再进行缩进。
只有在字符串准备就绪后,它才会显示在屏幕上。