Übergeben Argumente eine Methode immer von links nach rechts in Java bestellt?

7

Ich rufe eine Methode mit zwei Argumenten auf, aber ich benutze k ++ wie folgt:

%Vor%

Eigentlich möchte ich sicher sein, dass jvm zuerst das erste Argument und dann das zweite Argument ausführt. Wenn sich die Reihenfolge irgendwie ändert, werden die Argumente in falscher Reihenfolge übergeben.

Vielen Dank!

    
İsmail Yavuz 27.03.2014, 15:53
quelle

3 Antworten

10

Ja, die Argumente werden garantiert von links nach rechts ausgewertet. Jeder Compiler, der den JLS-Regeln entspricht, sollte diesem folgen. Dies wird in JLS §15.7.4 :

  

Bei einer Methoden- oder Konstruktoraufruf- oder Klasseninstanzerstellung   Ausdruck, Argumentausdrücke können innerhalb der Klammern erscheinen,   durch Kommata abgetrennt. Jeder Argumentausdruck scheint vollständig zu sein   vor jedem Teil eines beliebigen Arguments auf der rechten Seite ausgewertet.

    
Rohit Jain 27.03.2014, 15:56
quelle
8

Ja, das garantiert Java. Dies bedeutet jedoch nicht, dass die Verwendung des Codes so eine gute Idee ist: Leser Ihres Codes können durcheinander geraten.

Es ist viel sauberer, die Reihenfolge explizit anzuzeigen:

%Vor%     
dasblinkenlight 27.03.2014 15:59
quelle
3

Java unterstützt keine benannten Parameter. Sie haben also richtig verstanden, dass Parameter in Position gelesen werden.

Zum Beispiel werden eine Methode mit der Signatur (int, String) und eine Methode mit der Signatur (String, int) niemals miteinander verwechselt. Java berücksichtigt den Typ und die Reihenfolge der Parameter bei der Ermittlung der Methode anrufen.

Bei Ihrer Methode haben Sie immer Parameter, die vorhersehbar und einheitlich sind.

Aus diesem Grund wird das erste k ++ immer zuerst und das zweite k ++ immer danach ausgeführt, und das ist garantiertes Verhalten.

    
Ewald 27.03.2014 15:56
quelle