Java 15, Records

En este artículo les voy comentar de una nueva característica que llegó como preview en Java 14, y que ahora es parte oficial de Java 15 y son los Records.

Para empezar, debemos tener claro que un Record es una clase que explícitamente tiene como objetivo almacenar datos. Tradicionalmente si uno quiere crear una clase para ello y tenerla como un Data Transfer Object (DTO) se debe agregar todos los set/get, el equals, hashcode y el toString().

Pero con Java 15 es posible crear un DTO de una manera muy sencilla.

public record Usuario(String nombre, String apellido) {
}

Y ahora podemos usarla en nuestro código de la siguiente manera:

public static void main(String[] args) {
    var usuario = new Usuario("Gerardo", "Arroyo");
    System.out.println(usuario + " Nombre[" + usuario.nombre()+ "]");
}

Resulta muy sencillo y de fácil lectura, comparado con la manera tradicional de hacerlo.

Y el resultado sería:

  Usuario[nombre=Gerardo, apellido=Arroyo] Nombre[Gerardo]

También es posible incluir métodos estáticos para que operen sobre su estado.

public record Usuario(String nombre, String apellido) {


    public static void calcularXYZ() {
        // Cualquier cálculo u operación que necesitemos.
    }
}

Debemos tener en cuentas las siguientes consideraciones de un Record:

  • Genera un constructor público con todas las propiedades.
  • Todas las propiedad son private final
  • Crea todos los getters
  • Crea los métodos un toStringequals, y hashCode
  • No puede extender ninguna otra clase

Records es una una adición más que bienvenida en Java y que consideró que se convertirá en el mecanismo por omisión para DTO.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *