หลังจากที่แบ่งปันความรู้เกี่ยวกับการพัฒนาระบบงาน
ด้วยภาษา Java และ Spring Boot
Spring Boot 3 นั้น ต้องใช้งาน Java 17 ขึ้นไป
แต่ยังพบว่า ยังคงใช้งาน library ชื่อ Lombok
เลยทำการแนะนำความสามารถของ Java ชื่อว่า Record
ซึ่งมีมาตั้งแต่ Java 14 แล้ว
ดังนั้นจึงสรุปความสามารถของ Java Record ไว้นิดหน่อย
ทั้ง Java Record และ Lombok นั้น มีเป้าหมายเพื่อ
- ลด code ซ้ำ ๆ เช่น getter/setter, constructor, toString, equals และ hashcode เป็นต้น
- ใน Lombok มี builder pattern สำหรับการสร้าง instance ของ class ให้อีกด้วย
มาดูกันว่า Java Record เป็นอย่างไร และใช้งานกันอย่างไร
- มี keyword ใหม่ ชื่อว่า record
- สร้างมาสำหรับ data class หรือ data model นั่นเอง
- เป็น immutable object นั่นคือ สร้างแล้วไม่สามารถแก้ไขได้ ซึ่งเป็น final นั่นเอง
- ทำให้ไม่ต้องมาจัดการ synchronize กันนะ
- ทุก ๆ field/property จะเป็น final
- จะมี gettter method ให้กับทุก ๆ field/property
- ไม่สามารถสืบทอดได้ (inhertitance)
- มี public constructor ให้
- และสิ่งที่จำเป็น เหมือน ๆ กับ Lombok แต่ไม่ต้องใส้ annotation แปลก ๆ อีกต่อไป
ตัวอย่าง code ของ Record
[gist id="3796ce3779a53dd045bbc70ea19e0f8e" file="Person.java"]เรียกใช้งาน Record
[gist id="3796ce3779a53dd045bbc70ea19e0f8e" file="DemoRecord.java"]มาลองใช้งานกันดูครับ
ขอให้สนุกกับการ coding