Language Iniciante

Uma linha substitui mais de 30 linhas de boilerplate para portadores de dados imutáveis.

✕ 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.

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
Records para classes de dados
Disponível

Amplamente disponível desde o JDK 16 (março de 2021)

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.

Compartilhar 𝕏 🦋 in