我只是写了这段代码:

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所说),为了使字符串缩进,必须先创建所有片段,然后再进行缩进。

只有在字符串准备就绪后,它才会显示在屏幕上。

10-07 16:12
查看更多