Java中参数执行顺序的保证?
在C
给出以下函数调用:
fooFunc( barFunc(), bazFunc() );
没有指定barFunc
和BazFunc
的执行顺序,因此可以在C
barFunc()
之前的bazFunc()
或bazFunc()
之前barFunc()
。
Java
是否指定了函数参数expression式的执行顺序,还是像C
那样未指定?
从Java语言规范 (在expression式上):
15.7.4参数列表从左到右评估
在方法或构造函数调用或类实例创buildexpression式中,参数expression式可能出现在括号中,用逗号分隔。 每个参数expression式似乎在其右边任何参数expression式的任何部分之前被完全评估。