[英]How to use Java Optional without if condition to add different logic
我想對 Optional 值應用不同的邏輯,如下所示
Optional<String> alarm = getAlarm();
if (alarm.isPresent()) {
testAutoStopAndRollback(alarm.get());
} else {
testWithoutAutoStopAndRollback();
}
有沒有更簡潔的方法來實現相同的邏輯? 我知道我可以將一半的邏輯移到ifPresent()
alarm.ifPresent(name -> testAutoStopAndRollback(name));
剩下的部分我該怎么做?
為了澄清這個問題,我的代碼堅持使用 Java 8,所以我將無法在 Java 9 中使用ifPresentOrElse 。
一種方法可以通過從testAutoStopAndRollback
和testWithoutAutoStopAndRollback
返回一些值來testAutoStopAndRollback
,例如我會返回布爾值來識別值是否存在
testAutoStopAndRollback(val) ---> returns true
testWithoutAutoStopAndRollback ---> returns false
然后使用Optional
boolean value = alarm.map(this::testAutoStopAndRollback).orElseGet(this::testWithoutAutoStopAndRollback);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.