Ich schrieb diesen Code:Aufruf println Methode innerhalb println
public class T
{
public String toString()
{
System.out.println("new line");
return " "+4;
}
}
und:
public static void main(String[] args)
{
T t = new T();
System.out.println("11"+t);
}
und während ich es
11 new line
4
es tatsächlich gedruckt drucken erwartet:
new line
11 4
warum ist das? Was ist die Reihenfolge dieses Drucks und was ist die Logik dahinter?
Danke!
zu schreiben. Wie sollte Ihr Programm die Strings hier "11" + t vor dem Aufruf von 'verketten können String.valueOf (Object) 'für' t' (welches selbst 'toString' für dieses Objekt aufruft)? Richtig, kann es nicht, also muss es das vor der String-Verkettung tun und daher offensichtlich vor dem Verketten dieses verketteten Strings zu 'println' von der' main'-Methode. – Tom
Weil "11" + t "ausgewertet wird, bevor" println "das zweite Mal aufgerufen wird. –
Verwenden Sie einen Debugger und Schritt durch Ihren Code, und Sie werden schnell die Reihenfolge der Ausführung lernen. – Andreas