【发布时间】:2012-11-23 09:07:43
【问题描述】:
在声明中:
fooFunc().barFunc(bazFunc());
barFunc() 显然不能在 bazFunc() 和 fooFunc() 都完成之前执行。
但是fooFunc()和bazFunc()的执行顺序有保证吗?
相关(但不同!)问题: Order of execution of parameters guarantees in Java?
【问题讨论】:
-
第一。
fooFunc(),比bazFunc(),最后barFunc() -
可以说,如果您需要在这样的单个语句中保证执行顺序,那么您做错了。编辑:这并不是说这不是一个好问题或没有确凿的答案,只是如果你发现自己在实际情况下问这个问题,你可能想找出导致到这行代码。
-
@Kiyura 你在说什么?这里绝对保证执行顺序。
-
我确实同意@Kiyura - 你应该避免编写这样的代码 - 但值得知道,因为通过了解这一点可以发现细微的错误。
-
我要补充一点,编译器/运行时可以重新排序执行,只要效果相同。
标签: java