我有三個java8選項,並且希望返回以優先順序實際存在的選項。好像應該有一個簡單的方法來把它們連像這樣:三種可能的java8可選值 - 如何幹淨地返回兩者中的任何一個?
return optionalA.orElseIfPresent(optionalB).orElseIfPresent(optionalC);
如果三個都是空的,那麼Optional.empty()
應該歸還。
現有的orElse和orElseGet並不是真正的任務 - 它們必須返回一個實際值,所以剩下的回退不可能是Optionals本身。
在最糟糕的情況下,我可以有一個ifPresent()檢查的長列表,但似乎有更好的方法去解決它?
流答案可能更「漂亮」,但這種解決方案更簡單,更透明(並且順便提一下,效率更高。) –