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

เมธอดใหม่ที่เพิ่มใน Optional Class ของ Java 9

Optional Class Enhancements ใน Java 9

Java 9 เพิ่ม 3 เมธอดให้ Optional: or(), ifPresentOrElse(), stream()

1. Optional.or()

พฤติกรรม: ถ้ามีค่า -> คืน Optional นั้น, ไม่มีค่า -> คืน Optional จาก Supplier

Syntax

public Optional<T> or(Supplier<? extends Optional<? extends T>> supplier)

ตัวอย่าง

Optional<String> opt = Optional.ofNullable(null);
Optional<String> result = opt.or(() -> Optional.of("Adithya"));
System.out.println(result); // Optional[Adithya]

2. Optional.ifPresentOrElse()

พฤติกรรม: เหมือน ifPresent() แต่เพิ่ม Runnable สำหรับกรณี empty

Syntax

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

ตัวอย่าง

Optional<String> opt = Optional.ofNullable(null);
opt.ifPresentOrElse(
    x -> System.out.println(x),
    () -> System.out.println("No value")
);
// Output: No value

3. Optional.stream()

พฤติกรรม: แปลง Optional เป็น Stream (1 element หรือ empty)

Syntax

public Stream<T> stream()

ตัวอย่าง

List<Optional<String>> list = List.of(
    Optional.of("Jai"),
    Optional.empty(),
    Optional.of("Adithya")
);
Stream<String> stream = list.stream().flatMap(Optional::stream);
stream.forEach(System.out::println);
// Output: Jai Adithya

สรุป

MethodReturn Typeใช้เมื่อ
or()Optional<T>ต้องการ fallback Optional
ifPresentOrElse()voidต้องการ action ทั้ง 2 กรณี
stream()Stream<T>ต้องการแปลงเป็น Stream pipeline

เมธอดเหล่านี้ทำให้ Optional ใช้งานได้ยืดหยุ่นและ expressive มากขึ้น