Los record en Java son una forma concisa de definir clases inmutables que almacenan datos. Introducidos en Java 14 como una característica experimental y estabilizados en Java 16, los record eliminan la necesidad de escribir código repetitivo para constructores, métodos getter, equals(), hashCode() y toString().
record en Java?
Un record es una estructura que se utiliza para representar datos inmutables de manera sencilla. Al declararlo, Java automáticamente genera:
getter para cada campo.
equals(), hashCode() y toString().
public record Persona(String nombre, int edad) {}
Esto equivale a escribir una clase completa con sus métodos de acceso y constructores sin necesidad de código adicional.
record
| Característica | Descripción |
|---|---|
| Inmutabilidad |
Sus campos son finales (final) por defecto.
|
| Constructor automático | Se genera un constructor con todos los parámetros. |
| Métodos generados |
Implementa automáticamente toString(), equals() y hashCode().
|
| No permite herencia | No pueden extender otras clases, pero sí implementar interfaces. |
public record Persona(String nombre, int edad) {}
public class Main {
public static void main(String[] args) {
Persona p = new Persona("Juan", 25);
System.out.println(p.nombre()); // Acceder a los datos
System.out.println(p); // toString() automático
}
}
public record Punto(int x, int y) {
public int sumaCoordenadas() {
return x + y;
}
}
public record Vehiculo(String marca, String modelo) implements Comparable<Vehiculo> {
@Override
public int compareTo(Vehiculo otro) {
return this.marca.compareTo(otro.marca);
}
}
Jorge García
Fullstack developer