gpt4 book ai didi

具有链式方法的 Java 方法调用顺序

转载 作者:搜寻专家 更新时间:2023-10-31 20:01:05 25 4
gpt4 key购买 nike

给出以下 Java 代码示例:

builder.something()
.somethingElse()
.somethingMore(builder.getSomething());

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

最佳答案

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

At run time, method invocation requires five steps. First, a target reference may be computed. Second, the argument expressions are evaluated. ...

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

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

关于具有链式方法的 Java 方法调用顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33426430/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com