Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

วัตถุประสงค์ของเมธอด Optional.ifPresentOrElse() ใน Java 9

เมธอด ifPresentOrElse()

Java 9 ปรับปรุง Optional โดยเพิ่มเมธอด ifPresentOrElse() ที่รับ 2 พารามิเตอร์: Consumer (เมื่อมีค่า) และ Runnable (เมื่อไม่มีค่า)

Syntax

public void ifPresentOrElse(Consumer<? super T> action, Runnable emptyAction)

การทำงาน

  • ถ้า Optional มีค่า -> เรียก action.accept(value) (เหมือน ifPresent)
  • ถ้า Optional ว่าง -> เรียก emptyAction.run() (เพิ่มเติมจาก ifPresent)

ตัวอย่าง

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")
        );
    }
}

Output

Value: 1
Not Present

ประโยชน์

  • เขียน logic แบบ branching ได้ใน 1 statement
  • หลีกเลี่ยงการตรวจสอบ isPresent() แบบ manual
  • โค้ดกระชับ อ่านง่าย และ expressive มากขึ้น

สรุป

ifPresentOrElse() ช่วยให้จัดการทั้งกรณีมีค่าและไม่มีค่าใน Optional ได้อย่างชัดเจนและเป็น functional style