73

给定以下函数调用C

fooFunc( barFunc(), bazFunc() );

barFunc和的执行顺序BazFunc没有指定,所以barFunc()可以在 之前或bazFunc()之前bazFunc()调用。barFunc()C

是否Java指定函数参数表达式的执行顺序或类似C的未指定?

4

1 回答 1

85

来自Java 语言规范(关于表达式):

15.7.4 参数列表从左到右求值

在方法或构造函数调用或类实例创建表达式中,参数表达式可能出现在括号内,用逗号分隔。每个参数表达式似乎在其右侧的任何参数表达式的任何部分之前都已被完全评估。

于 2010-02-04T17:20:37.127 回答