การปรับปรุง 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