Language Principiante

Una línea reemplaza más de 30 líneas de código repetitivo para portadores de datos inmutables.

✕ 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) {}
¿Ves un problema con este código? Cuéntanos.

Definición en una línea

Una sola línea reemplaza constructor, getters, equals, hashCode y toString.

🔒

Inmutable por defecto

Todos los campos son final — sin riesgos de setters.

🧩

Compatible con patrones

Los records funcionan con patrones de desestructuración en switch e instanceof.

Enfoque Antiguo
POJO verboso
Enfoque Moderno
record
Desde JDK
16
Dificultad
Principiante
Records para clases de datos
Disponible

Ampliamente disponible desde JDK 16 (marzo 2021)

Los records generan automáticamente el constructor, los accesores (x(), y()), equals(), hashCode() y toString(). Son inmutables por diseño e ideales para DTOs, objetos de valor y pattern matching.

Compartir 𝕏 🦋 in