Records para clases de datos
Una línea reemplaza más de 30 líneas de código repetitivo para portadores de datos inmutables.
Comparación 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) {}
¿Ves un problema con este código? Cuéntanos.
Por qué gana la forma moderna
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
Soporte JDK
Records para clases de datos
Disponible
Ampliamente disponible desde JDK 16 (marzo 2021)
Cómo funciona
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.
Documentación Relacionada