Given the following function call in C:
fooFunc( barFunc(), bazFunc() );
The order of execution of barFunc and BazFunc is not specified, so barFunc() may be called before bazFunc() or bazFunc() before barFunc() in C.
Does Java specify an order of execution of function argument expressions or like C is that unspecified?
解决方案
15.7.4 Argument Lists are Evaluated Left-to-Right
In a method or constructor invocation
or class instance creation expression,
argument expressions may appear within
the parentheses, separated by commas.
Each argument expression appears to be
fully evaluated before any part of any
argument expression to its right.