¿Qué son los records en Java y cómo te ayudan a manipular datos?

| Última modificación: 25 de septiembre de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

Junto a la llegada de Java 14, una nueva herramienta se agregó al arsenal. Se trata de los records en Java, una característica que simplifica la creación de clases inmutables, lo cual es muchas veces necesario cuando se trabaja con Data Transfer Objects o DTOs, o cuando necesitamos estructuras de datos sencillas.

En el artículo de hoy veremos qué son los records en Java, cómo se usan y cómo pueden ayudarnos a manejar datos.

records en Java

¿Qué son los records en Java?

Los records en Java son una clase especialmente diseñada para reducir el código boilerplate, esto es, código repetitivo que generalmente escribimos al definir clases simples. Los records en Java están pensados para clases inmutables, en donde las propiedades no cambian una vez creadas.

Cuando tenemos que trabajar con datos, en especial en aplicaciones que tienen grandes volúmenes, es necesario crear clases que representen esas entidades, pero sin la necesidad de escribir de forma manual getters, setters, constructores y los métodos equals (), hashCode() y toString().

Con el record en Java, este se encarga de generar de manera automática todo este código, esto nos permite centrarnos en lo verdaderamente importante, que es la manipulación de los datos. Sumado a esto, los records en Java son inmutables, esto quiere decir que una vez son creados, sus valores no pueden ser modificados.

Veamos cómo definir un record para una clase Persona:

public record Persona(String nombre, String apellidos, int edad) {}

En este caso, el record Persona tiene tres campos: nombre, apellidos y edad. Java automáticamente generará el constructor, los métodos toString(), equals(), hashCode() y getters (sin get, simplemente usando el nombre del campo).

Por ejemplo:

Persona persona = new Persona("Juan", "Gómez", 25);
System.out.println(persona.nombre()); // Imprime "Juan"
System.out.println(persona.edad()); // Imprime 25

¿Cómo usar los records en Java?

Declaración de un record

Como vimos antes, declarar un record es muy sencillo. Veamos otro ejemplo con más detalle:

public record Producto(String nombre, double precio, String categoria) {}

Este record Producto tiene tres campos: nombre, precio y categoria. Puedes crear una instancia de esta manera:

Producto producto = new Producto("Laptop", 999.99, "Electrónica");

Acceder a los datos

Para acceder a los datos en un record, simplemente llamas a los métodos que corresponden al nombre de los campos:

System.out.println(producto.nombre());  // Imprime "Laptop"
System.out.println(producto.precio()); // Imprime 999.99

Como puedes ver, no necesitas escribir getters; Java se encarga de ello automáticamente.

Añadiendo lógica a un record

Aunque los records en Java son muy concisos, eso no significa que no puedas agregar lógica adicional a ellos. Puedes agregar métodos, validar entradas o incluso definir constructores personalizados:

public record Producto(String nombre, double precio, String categoria) {
public Producto {
if (precio < 0) {
throw new IllegalArgumentException("El precio no puede ser negativo");
}
}
}

Este record ahora valida que el precio del producto no sea negativo al ser creado.

¿Cuándo usar records en Java?

Los records en Java son muy útiles cuando necesitas crear clases de datos que simplemente almacenan valores y no requieren lógica compleja ni mutabilidad. Esto incluye Data Transfer Objects, entidades de bases de datos, y cualquier estructura de datos que simplemente agrupe valores.

Veamos un ejemplo:

Supongamos que estás trabajando en una aplicación de comercio electrónico y necesitas representar productos. Anteriormente, habrías definido una clase con campos, constructor, getters y quizás algún método adicional. Con records en Java, puedes reducir todo eso a algo como esto:

public record Producto(String nombre, double precio, String categoria) {}

Esto te ahorra mucho tiempo y reduce la probabilidad de errores.

Si te interesa el mundo de la programación y de lenguajes como Java, no dudes en suscribirte a nuestro bootcamp en Java, un curso en donde podrás aprender las técnicas más avanzadas de este lenguaje e incursionar en el mercado laboral rápidamente. ¡No pierdas la oportunidad de cambiar tu vida!

Ramón Maldonado

Full Stack Developer y Responsable de Formación base en KeepCoding.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Java y Spring Boot

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado