我在Java 8中有一個2語句方法。第一條語句需要相當長的時間才能執行,重要的是,不能返回一個值。第二種說法很快。我如何執行並完成第一條語句,並確保第二條語句在第一條語句完成之前不會執行?代碼片段將非常感謝。如何確保Java方法中2條語句的順序和完整執行
public static Object returnMyClassFieldValue() {
setMyClassField(); // long running; can't return a value
return MyClass.valueOfMyField; // very quick
}
究竟發生了什麼問題?如果'setMyClassField'阻塞,那麼該方法的執行應該是順序的。如果'setMyClassField'沒有被阻塞,請在你的問題中添加更多的細節,這樣你可以得到更簡潔的答案。 – Makoto
除非setMyClassField()異步顯式執行某些操作,否則它將在第二個語句執行前運行完成。 setMyClassField做什麼? – DaveH
除非你做了一些特別的事情,否則你所描述的正是代碼聲明的工作方式。如果你在命令行中執行某些操作,或者可能在不等待響應的情況下向數據庫發送消息,那麼可能會跳過一個節拍,否則,如果你只是使用普通的Java,重新覆蓋。 – Compass