
JEP 532: แพทเทิร์นชนิดพื้นฐานใน instanceof และ switch รอบห้า
เคยแคสต์ 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 ทุกครั้งที่อยากแคสต์ชนิดพื้นฐาน