นากกายสีมิ้นต์จัดบล็อกรูปทรงลงช่องบนกระดานสวิตช์ที่มีช่องหนึ่งเรืองแสงสีอำพัน

JEP 532: แพทเทิร์นชนิดพื้นฐานใน instanceof และ switch รอบห้า

น้องกายEngineering

เคยแคสต์ int เป็น byte แล้วค่าเพี้ยนเงียบ ๆ ไหม พรีวิวนี้พยายามให้แพทเทิร์นช่วยกันค่าที่ไม่พอดี

JEP 532 เป็นพรีวิว รอบห้า ใน JDK 27 โดยระบุว่าไม่เปลี่ยนจาก JEP 530 เป้าหมายคือให้ type pattern ใช้กับชนิดพื้นฐานได้ทั้งใน instanceof และ switch และให้ switch รับ long, float, double, boolean ได้ด้วย

หัวใจคือ exact conversion: จับคู่ได้เมื่อแปลงแล้วไม่เสียข้อมูล ถ้าเสีย แพทเทิร์นไม่แมตช์ แทนที่จะแคสต์แล้วเงียบ

ตัวอย่างแนวคิดจาก JEP เช่น i instanceof byte b จะเข้าก้อนก็ต่อเมื่อค่าพอดีใน byte

ต้อง --enable-preview และยังเป็นภาษาพรีวิวบน JDK 27 ที่อยู่ RC

Recap

  • อ่าน JEP 532 ก่อนเขียน switch บนตัวเลขซับซ้อน
  • ใช้พรีวิวบนสาขาทดลอง
  • นึกถึง exactness ทุกครั้งที่อยากแคสต์ชนิดพื้นฐาน