การปรับปรุง ifPresentOrElse() วิธีการใน ตัวเลือก ชั้นคือที่ยอมรับสองพารามิเตอร์ ผู้บริโภค และ รันได้ . จุดประสงค์ของการใช้ ifPresentOrElse() วิธีคือถ้า ไม่บังคับ มีค่า เรียกใช้การทำงานของฟังก์ชันกับค่าที่มีอยู่ เช่น action.accept (ค่า) ซึ่งสอดคล้องกับ ifPresent() กระบวนการ. ความแตกต่างจาก ifPresent() วิธีก็คือ ifPresentOrElse() มีพารามิเตอร์ที่สอง emptyAction . หากตัวเลือกไม่มีค่า ดังนั้น ifPresentOrElse() เมธอดเรียก emptyAction นั่นคือ emptyAction.run() .
ไวยากรณ์
public void ifPresentOrElse(Consumer<? super T> action, Runnable emptyAction)
ตัวอย่าง
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"));
}
} ผลลัพธ์
Value: 1 Not Present