带有链接方法的Java方法调用顺序

时间:2015-10-29 23:30:16

标签: java

给出以下Java代码示例:

getCurrentPosition

Java语言规范是否保证在 builder.something() .somethingElse() .somethingMore(builder.getSomething()); 方法之后getSomething()被调用,或者是允许重新排序执行的Java实现?

1 个答案:

答案 0 :(得分:5)

JLS, Section 15.12.4保证在计算参数之前计算目标引用。

  

在运行时,方法调用需要五个步骤。首先,可以计算目标参考。其次,评估参数表达式。 ...

必须首先评估somethingElse方法,以计算somethingMore方法的目标引用。然后评估builder.getSomething()以将参数的值提供给somethingMore。然后可以执行somethingMore

由于此规则,不允许JVM重新排序执行。