Records para classes de dados
Uma linha substitui mais de 30 linhas de boilerplate para portadores de dados imutáveis.
Comparação de Código
✕ 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) {}
Viu um problema com este código? Nos avise.
Por que a forma moderna ganha
Definição em uma linha
Uma única linha substitui construtor, getters, equals, hashCode, toString.
Imutável por padrão
Todos os campos são final — sem armadilhas de setters.
Compatível com patterns
Records funcionam com padrões de desestruturação em switch e instanceof.
Abordagem Antiga
POJO verboso
Abordagem Moderna
record
Desde o JDK
16
Dificuldade
Iniciante
Suporte JDK
Records para classes de dados
Disponível
Amplamente disponível desde o JDK 16 (março de 2021)
Como funciona
Records geram automaticamente o construtor, acessores (x(), y()), equals(), hashCode() e toString(). São imutáveis por design e ideais para DTOs, objetos de valor e pattern matching.
Documentação Relacionada