Stream.ofNullable()
Java 9 เพิ่ม static method Stream.ofNullable(T t) คืน Stream ที่มี 1 element ถ้าไม่ใช่ null, ไฉนนั้นคืน Empty Stream
วัตถุประสงค์
- หลีกเลี่ยง NullPointerException
- หลีกเลี่ยง null checks แบบ manual
- รองรับ functional style ใน Stream pipeline
Syntax
static <T> Stream<T> ofNullable(T t)
ตัวอย่าง 1: นับจำนวน Element
Stream.ofNullable(5000).count(); // 1 Stream.ofNullable(null).count(); // 0
ตัวอย่าง 2: ใช้กับ forEach
String str = null; Stream.ofNullable(str).forEach(System.out::println); // พิมพ์ไม่ไง str = "TutorialsPoint"; Stream.ofNullable(str).forEach(System.out::println); // พิมพ์ TutorialsPoint
Output
TutorialsPoint
Use Cases
- รวมเข้ากับ
flatMapเพื่อ filter nulls ออกจาก stream - แปลงค่าที่อาจเป็น null ให้เป็น stream สำหรับ pipeline
- 替代 ternary:
val != null ? Stream.of(val) : Stream.empty()
สรุป
Stream.ofNullable() เป็น utility method เล็กแต่วิเศษ สำหรับจัดการ null-safety ใน Stream API อย่างเป็น functional