Trung BìnhJava iconJava

Records trong Java là gì? Khi nào nên dùng Record thay vì class thông thường?

Record (preview từ Java 14, chính thức từ Java 16) là loại class đặc biệt dành cho dữ liệu thuần túy — immutable data carrier.

Khai báo: record Person(String name, int age) {}.

Compiler tự sinh: constructor, getters (name(), age()), equals(), hashCode(), toString().

So với POJO thông thường: ít boilerplate hơn rất nhiều.

Khi nên dùng:

  1. DTO (Data Transfer Objects) — dữ liệu giữa các layer.
  2. Value objects.
  3. API response/request model.
  4. khi cần immutability rõ ràng

Record Patterns (Java 21): deconstruct trực tiếp trong switch/instanceof — if (obj instanceof Person(String name, int age)) { ... }.

Hạn chế: không extend class (chỉ implement interface), không thêm mutable field.

Xem toàn bộ Java cùng filter theo level & chủ đề con.

Mở danh sách Java