Records para simplificar código inmutable en Java
Clase 23 de 31 • Curso de Java
Contenido del curso
Pensando en objetos
Construcción de clases y modelado de objetos
- 10

Atributos y métodos estáticos en clases utilitarias de Java
08:43 min - 11

Constantes en Java: inmutabilidad con static final
04:09 min - 12

Constructores en Java para inicializar objetos con datos
08:10 min - 13

Gestión de memoria en Java: stack, heap y garbage collector
07:05 min - 14

Encapsulamiento en Java: Atributos privados y métodos getter y setter
09:26 min - 15

Operaciones básicas con listas en Java: agregar, eliminar y recorrer
11:12 min - 16

Relaciones entre clases en Java: asociación, agregación y composición
03:45 min - 17

Implementación de menús interactivos con while y switch en Java
11:38 min - 18

Búsqueda y eliminación de elementos en listas de Java
09:20 min
Estructuras de datos y Java moderno
- 19

Streams y lambdas para filtrar listas en Java
11:55 min - 20

Transformación y ordenamiento de listas con streams en Java
11:49 min - 21

Validación de entrada con enums en Java
11:56 min - 22

Diferencias entre Excepciones Checked y Unchecked en Java
08:16 min - 23

Records para simplificar código inmutable en Java
Viendo ahora - 24

Mapas en Java para contar visualizaciones de películas
09:47 min - 25

Lectura de archivos planos y conversión a objetos en Java
13:48 min - 26

Escritura de archivos planos con la API moderna de Java
09:50 min
Reutilización y diseño orientado a objetos
- 27

Herencia en Java para reutilizar código entre clases relacionadas
10:52 min - 28

Operador instanceof para identificar tipos de objetos en Java
12:47 min - 29

Clases abstractas y métodos abstractos en Java
07:54 min - 30

Creación e implementación de interfaces en Java
08:43 min - 31

Fundamentos y conceptos avanzados de Java
00:55 min
Domina la simplificación de tu código Java utilizando records, una poderosa estructura introducida desde la versión dieciséis. Los records son ideales para representar datos que no necesitas modificar nunca, evitando muchísimas líneas de código repetido y fomentando buenas prácticas modernas.
¿Qué es un record en Java y para qué sirve?
Un record permite definir una clase inmutable de manera sencilla, perfecta para almacenar datos que no deben cambiar. Cuando defines un record, Java genera automáticamente:
- Un constructor con los parámetros especificados.
- Métodos de acceso, similares a getters.
- Los métodos equals, toString y hashCode sin necesidad de escribirlos manualmente.
Este recurso es especialmente útil para representar objetos "ligeros" o versiones resumidas de una entidad más grande, como una película con solo su título, duración y género.
¿Cómo se define un record en Java?
Al crear un record, el formato es algo especial. Utilizas la palabra record antes del nombre y defines los atributos entre paréntesis, por ejemplo:
public record ResumenContenido(String titulo, int duracion, String genero) {}
Los atributos pueden escribirse en una sola línea o separados para mayor legibilidad. Solo necesitas declarar los datos esenciales; al ser inmutables, los records no incluyen setters.
¿Cómo usar records para obtener listas resumidas de datos?
Supongamos que ya tienes una clase Pelicula con muchos atributos, pero necesitas una versión simple solo con algunos campos. Puedes crear métodos que devuelvan listas de tu nuevo record a partir de una colección más grande:
- Dentro del método en la clase correspondiente, utiliza un stream para transformar tus datos.
- Por ejemplo:
return contenidos.stream()
.map(c -> new ResumenContenido(c.getTitulo(), c.getDuracion(), c.getGenero()))
.collect(Collectors.toList());
Así, a partir de una lista de películas completas, generas una lista más ligera.
¿Cómo acceder y mostrar datos en records?
Una vez tienes una lista de records, puedes acceder fácilmente a cada atributo por su nombre (no tienen prefijo get):
for (ResumenContenido resumen : contenidosResumidos) {
System.out.println(resumen.titulo());
// Puedes imprimir todo el objeto usando toString:
System.out.println(resumen);
}
El método toString de los records se genera solo y muestra directamente sus valores en formato fácil de leer.
¿Qué ventajas ofrecen los records y cuándo usarlos?
Los records permiten mantener el código limpio, corto y fácil de entender cuando representas datos inmutables, como DTOs o elementos sin lógica de validación. Te ahorras los constructores, getters y otros métodos, facilitando el mantenimiento del código.
¿Te animas a probar records en tus proyectos Java? Comparte tus experiencias creando tus propios DTOs o versiones "light" con esta técnica.