หลังจากที่แบ่งปันความรู้เกี่ยวกับการพัฒนาระบบงาน
ด้วยภาษา 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

เรียกใช้งาน Record

มาลองใช้งานกันดูครับ
ขอให้สนุกกับการ coding