Tag: java-17
11 รายการ
Blog
Java Arrays.compareUnsigned: เรียง byte array แบบข้อมูลไบนารี ไม่ใช่เลขติดลบ
ใช้ Arrays.compareUnsigned เปรียบเทียบ byte array ตามค่า 0–255 พร้อมเห็นความต่างจาก signed comparison
Java collectingAndThen: เก็บข้อมูลก่อน แล้วล็อกผลลัพธ์ตอนจบ
ใช้ Collectors.collectingAndThen เพิ่ม finishing step เช่น unmodifiable list โดยไม่กระจาย post-processing นอก stream
Java String.transform: ตั้งชื่อ pipeline แปลงข้อความแทนการซ้อนเมธอด
ใช้ String.transform ส่งข้อความเข้า Function ที่ตั้งชื่อได้ พร้อมทดสอบการ normalize และ validation บน Java 17
Java Collectors.flatMapping: รวมสมาชิกย่อยต่อกลุ่มโดยไม่เก็บ List ซ้อน
ใช้ flatMapping downstream ของ groupingBy เพื่อรวม tag ต่อทีม พร้อมจัดการ stream ย่อยและค่า null ให้ชัด
Java Collectors.filtering: กรองสมาชิกแต่ยังเก็บกลุ่มที่ผลลัพธ์เป็นศูนย์
วาง filtering ไว้ downstream ของ groupingBy เพื่อรักษา key ของกลุ่ม พร้อมเทียบกับการ filter stream ก่อนจัดกลุ่ม
Java exceptionallyCompose: fallback แบบ async โดยไม่ซ้อน CompletableFuture
กู้ future ที่ล้มด้วยงาน async อีกชุด พร้อมแยก recovery จากการแปลงผลปกติและทดสอบบน Java 17
Java Optional.stream: แบนค่าที่อาจหายโดยไม่แตก pipeline เป็น if
ใช้ Optional.stream รวมผล lookup หลายรายการเป็น Stream เดียว พร้อมรักษาความหมายของค่าที่ไม่พบ
Java Stream.mapMulti: คืนศูนย์หรือหลายผลลัพธ์โดยไม่สร้าง Stream ย่อยทุกครั้ง
ใช้ mapMulti แทน flatMap เมื่อแต่ละ input อาจไม่คืนค่า หรือคืนหลายค่า พร้อมตัวอย่าง Java 17 ที่รัน assertions จริง
Java Sealed Classes: ปิดขอบเขต hierarchy ให้ compiler ช่วยเฝ้า
ใช้ sealed interface จำกัด implementation และออกแบบผลลัพธ์แบบปิด พร้อม Java 17 assertions
Java Records: ทำ value object ให้สั้น แต่ยังตรวจ invariant ได้
ออกแบบ immutable data carrier ด้วย record และ compact constructor พร้อม self-contained Java 17 test
Java Pattern Matching for instanceof: ตรวจชนิดและผูกตัวแปรโดยไม่ cast ซ้ำ
ลด cast ที่ซ้ำและใช้ flow scoping อย่างปลอดภัยด้วย pattern matching ที่พร้อมใช้ใน Java 17