¿Qué te dan los records (Java 16+) con record Point(int x, int y) {}?
Opciones
- Una clase mutable con setters para cada componente
- Una clase inmutable con getters,
equalsytoString(Opción correcta) - Una tabla de base de datos mapeada desde los componentes
- Una clase que no puede declarar ningún método
Respuesta
Una clase de datos inmutable con constructor, getters (x()), equals, hashCode y toString generados automáticamente
Por qué
Un record es una forma corta de declarar un simple contenedor de datos. El compilador genera el constructor, los accessors (p.x(), no getX()), equals, hashCode y toString a partir de los componentes listados.
Los campos son final, así que los records son inmutables. Son ideales para DTOs, respuestas de API y claves de map. Aun así pueden tener métodos extra y validación en un compact constructor.
Recuerda
record = clase de datos inmutable con el boilerplate generado.