Cải tiến của phương thức ifPresentOrElse() trong lớp Optional là chấp nhận hai tham số: Consumer và Runnable. Mục đích sử dụng ifPresentOrElse() là: nếu Optional chứa giá trị, hàm action được gọi trên giá trị đó, tức là action.accept(value), tương thích với phương thức ifPresent(). Khác biệt với ifPresent() là ifPresentOrElse() có tham số thứ hai là emptyAction. Nếu Optional không chứa giá trị, phương thức ifPresentOrElse() gọi emptyAction, tức là emptyAction.run().
Cú pháp
public void ifPresentOrElse(Consumer<? super T> action, Runnable emptyAction)
Ví dụ
import java.util.Optional;
public class IfPresentOrElseMethodTest {
public static void main(String args[]) {
Optional<Integer> optional = Optional.of(1);
optional.ifPresentOrElse(x -> System.out.println("Value: " + x),
() -> System.out.println("Not Present"));
optional = Optional.empty();
optional.ifPresentOrElse(x -> System.out.println("Value: " + x),
() -> System.out.println("Not Present"));
}
}
Kết quả
Value: 1 Not Present