Rekordy dla klas danych
Jedna linia zastępuje ponad 30 linii szablonowego kodu dla niemutowalnych nośników danych.
Porównanie kodu
✕ Java 8
public class Point {
private final int x, y;
public Point(int x, int y) { ... }
public int getX() { return x; }
public int getY() { return y; }
// equals, hashCode, toString
}
✓ Java 16+
public record Point(int x, int y) {}
Widzisz problem z tym kodem? Daj nam znać.
Dlaczego nowoczesne podejście wygrywa
Definicja w jednej linii
Jedna linia zastępuje konstruktor, gettery, equals, hashCode, toString.
Niemutowalne domyślnie
Wszystkie pola są final — żadnych niebezpiecznych setterów.
Przyjazne dla wzorców
Rekordy współpracują z wzorcami destrukturyzacji w switch i instanceof.
Stare podejście
Rozbudowane POJO
Nowoczesne podejście
record
Od JDK
16
Poziom trudności
Początkujący
Wsparcie JDK
Rekordy dla klas danych
Dostępne
Szeroko dostępne od JDK 16 (marzec 2021)
Jak to działa
Rekordy automatycznie generują konstruktor, akcesory (x(), y()), equals(), hashCode() i toString(). Są niemutowalne z założenia i idealne dla DTO, obiektów wartości i dopasowania wzorców.
Powiązana dokumentacja
Dowód