Ordre d'exécution des paramètres garanties en Java?
-
18-09-2019 - |
Question
Compte tenu de l'appel de fonction suivante dans C
:
fooFunc( barFunc(), bazFunc() );
L'ordre d'exécution des barFunc
et BazFunc
est pas spécifié, de sorte barFunc()
peut être appelé avant bazFunc()
ou bazFunc()
avant barFunc()
dans C
.
Est-ce que Java
spécifier un ordre d'exécution des expressions d'argument de fonction ou comme C
est que non précisée?
La solution
De la langage Java spécification (sur les expressions):
15.7.4 listes d'arguments sont évalués de gauche à droite
Dans un appel de méthode ou d'un constructeur ou par exemple la classe expression de création, expressions d'argument peuvent apparaître dans les parenthèses, séparés par des virgules. Chaque expression de l'argument semble être pleinement évalués avant qu'une partie quelconque de expression d'argument à sa droite.