Tag: java-17

11 รายการ

Blog

นากมิ้นต์ต้นฉบับเทียบลูกปัดไบต์สองแถว โดยลูกปัดสีอำพันค่าช่วงสูงถูกมองเป็นบวก
javaarraysbytes

Java Arrays.compareUnsigned: เรียง byte array แบบข้อมูลไบนารี ไม่ใช่เลขติดลบ

ใช้ Arrays.compareUnsigned เปรียบเทียบ byte array ตามค่า 0–255 พร้อมเห็นความต่างจาก signed comparison

พี่โชว์
นากมิ้นต์ต้นฉบับรวบรวมชิ้นงานลงตะกร้าแล้วกดฝาสีอำพันให้ล็อกหลังเก็บครบ
javastreamscollectors

Java collectingAndThen: เก็บข้อมูลก่อน แล้วล็อกผลลัพธ์ตอนจบ

ใช้ Collectors.collectingAndThen เพิ่ม finishing step เช่น unmodifiable list โดยไม่กระจาย post-processing นอก stream

พี่โชว์
นากมิ้นต์ต้นฉบับป้อนริบบิ้นครีมผ่านกล่องแปลงสีเขียวสองขั้นจนออกมาเรียบร้อย
javastringtransform

Java String.transform: ตั้งชื่อ pipeline แปลงข้อความแทนการซ้อนเมธอด

ใช้ String.transform ส่งข้อความเข้า Function ที่ตั้งชื่อได้ พร้อมทดสอบการ normalize และ validation บน Java 17

พี่โชว์
นากกายต้นฉบับเปิดกล่องย่อยจากแต่ละโครงการแล้วเทลูกแก้วลงถาดรวมตามทีมโดยไม่เหลือกล่องซ้อน
javastreamscollectors

Java Collectors.flatMapping: รวมสมาชิกย่อยต่อกลุ่มโดยไม่เก็บ List ซ้อน

ใช้ flatMapping downstream ของ groupingBy เพื่อรวม tag ต่อทีม พร้อมจัดการ stream ย่อยและค่า null ให้ชัด

พี่โชว์
นากกายต้นฉบับคัดลูกบอลในถาดแยกตามทีม โดยยังวางถาดว่างไว้ให้ทีมที่ไม่มีลูกบอลผ่านเงื่อนไข
javastreamscollectors

Java Collectors.filtering: กรองสมาชิกแต่ยังเก็บกลุ่มที่ผลลัพธ์เป็นศูนย์

วาง filtering ไว้ downstream ของ groupingBy เพื่อรักษา key ของกลุ่ม พร้อมเทียบกับการ filter stream ก่อนจัดกลุ่ม

พี่โชว์
นากกายต้นฉบับกำลังย้ายลูกแก้วจากรางที่ขาดไปยังรางสำรองสีเขียวซึ่งกลับมารวมเส้นเดิม
javacompletablefutureconcurrency

Java exceptionallyCompose: fallback แบบ async โดยไม่ซ้อน CompletableFuture

กู้ future ที่ล้มด้วยงาน async อีกชุด พร้อมแยก recovery จากการแปลงผลปกติและทดสอบบน Java 17

พี่โชว์
นากกายต้นฉบับกำลังเทกล่องบางใบที่มีเมล็ดและบางใบว่างลงรางสีเขียวเส้นเดียว
javaoptionalstreams

Java Optional.stream: แบนค่าที่อาจหายโดยไม่แตก pipeline เป็น if

ใช้ Optional.stream รวมผล lookup หลายรายการเป็น Stream เดียว พร้อมรักษาความหมายของค่าที่ไม่พบ

พี่โชว์
นากกายต้นฉบับกำลังเปิดบานแยกรางให้ลูกแก้วบางลูกผ่านออกมาหลายลูกและบางช่องไม่ปล่อยอะไร
javastreamsjava-17

Java Stream.mapMulti: คืนศูนย์หรือหลายผลลัพธ์โดยไม่สร้าง Stream ย่อยทุกครั้ง

ใช้ mapMulti แทน flatMap เมื่อแต่ละ input อาจไม่คืนค่า หรือคืนหลายค่า พร้อมตัวอย่าง Java 17 ที่รัน assertions จริง

พี่โชว์
นากกายสีมิ้นต์ต้นฉบับเฝ้าประตูแตกแขนงสามบานที่เชื่อมจากตรากลางสีอำพัน
javasealed-classesdomain-modeling

Java Sealed Classes: ปิดขอบเขต hierarchy ให้ compiler ช่วยเฝ้า

ใช้ sealed interface จำกัด implementation และออกแบบผลลัพธ์แบบปิด พร้อม Java 17 assertions

น้องกาย
นากกายสีมิ้นต์ต้นฉบับกำลังประทับชิ้นข้อมูลกลมให้ตรงกับช่องรายการบนกระดาษ
javarecordsdomain-modeling

Java Records: ทำ value object ให้สั้น แต่ยังตรวจ invariant ได้

ออกแบบ immutable data carrier ด้วย record และ compact constructor พร้อม self-contained Java 17 test

น้องกาย
นากกายสีมิ้นต์ต้นฉบับชี้วงกลมและสี่เหลี่ยมให้ไหลลงกล่องรูปทรงที่ตรงกัน
javapattern-matchinginstanceof

Java Pattern Matching for instanceof: ตรวจชนิดและผูกตัวแปรโดยไม่ cast ซ้ำ

ลด cast ที่ซ้ำและใช้ flow scoping อย่างปลอดภัยด้วย pattern matching ที่พร้อมใช้ใน Java 17

น้องกาย