Порядок выполнения параметров гарантии в Java? - PullRequest
62 голосов
/ 04 февраля 2010

С учетом следующего вызова функции в C:

fooFunc( barFunc(), bazFunc() );

Порядок выполнения barFunc и BazFunc не указан, поэтому barFunc() можно вызывать до bazFunc() или bazFunc() до barFunc() в C.

Указывает ли Java порядок выполнения выражений аргументов функции или как C, это не определено?

1 Ответ

69 голосов
/ 04 февраля 2010

Из Спецификации языка Java (в выражениях):

15.7.4 Списки аргументов оцениваются слева направо

В вызове метода или конструктора или выражение создания экземпляра класса, выражения аргумента могут появляться внутри круглые скобки, разделенные запятыми. Каждое выражение аргумента представляется полностью оценивается перед любой частью любого Выражение аргумента справа от него.

...