¿Qué es Lombok?

Lombok es un procesador de anotaciones que facilita escribir código Java reduciendo la cantidad de código "boilerplate" que hay que poner cuando se programa; o sea, código que hay que poner porque sí pero que es poco útil. Me estoy refiriendo a la mayoría de getters, setters, constructores... que no son lógica de negocio importante, pero que hay que poner para configurar correctamente una clase. En este vídeo os cuento cómo Lombok puede hacer más fácil escribir código Java de forma práctica.

Lombok es una biblioteca para Java que nos ayuda a simplificar y agilizar la escritura de código, especialmente cuando trabajamos con clases que representan modelos de datos. En lugar de escribir manualmente getters, setters, constructores, métodos equals, hashCode o toString, Lombok nos permite generarlos automáticamente mediante anotaciones, lo que nos libera de la tediosa tarea de escribir código repetitivo y nos permite centrarnos en la lógica de negocio.

Imaginemos que tenemos una clase Libro con varios atributos privados, pero sin ningún método para acceder o modificar esos atributos. Normalmente, tendríamos que escribir todos los getters y setters a mano o usar alguna función del IDE para generarlos automáticamente. Con Lombok, simplemente anotamos la clase con @Data y automáticamente obtenemos todos esos métodos esenciales. Por ejemplo:

import lombok.Data;

@Data
public class Libro {
    private String nombre;
    private String autor;
    private String isbn;
    private String fechaDePublicacion;
}

Con esta simple anotación, podemos usar métodos como setAutor(), getNombre(), e incluso imprimir el objeto con un toString() bien formado, sin haber escrito ni una línea extra.

Además de @Data, Lombok ofrece otras anotaciones muy útiles. Por ejemplo, @AllArgsConstructor genera un constructor con todos los atributos, mientras que @NoArgsConstructor crea un constructor vacío, algo especialmente útil cuando trabajamos con frameworks como JPA que requieren un constructor sin parámetros. También podemos usar @Builder para implementar el patrón builder sin esfuerzo, lo que nos permite construir objetos de forma fluida y legible:

import lombok.Builder;
import lombok.Data;

@Data
@Builder
public class Libro {
    private String nombre;
    private String autor;
    private String isbn;
    private String fechaDePublicacion;
}

Con esto, podemos crear un libro así:

Libro libro = Libro.builder()
    .nombre("El Quijote")
    .autor("Miguel de Cervantes")
    .isbn("1234567890")
    .fechaDePublicacion("1605")
    .build();

Otra anotación interesante es @Value, que convierte la clase en inmutable. Esto significa que todos los campos serán final, se generará un constructor con todos los atributos y solo tendremos getters, sin setters. Además, Lombok nos permite usar métodos with para crear copias modificadas de un objeto inmutable, facilitando la gestión de estados sin mutaciones directas.

Para evitar problemas con valores nulos, Lombok ofrece la anotación @NonNull. Al aplicarla a un parámetro o atributo, genera automáticamente comprobaciones que lanzan excepciones si se intenta asignar un valor nulo, ayudándonos a prevenir errores comunes y mejorando la calidad del código. Además, muchos IDEs reconocen esta anotación y nos avisan si intentamos pasar un null donde no corresponde.

La integración de Lombok con los IDEs es bastante buena. En IntelliJ IDEA y NetBeans, las anotaciones se reconocen de forma nativa, y los métodos generados aparecen como si estuvieran escritos en el código. En Eclipse, es necesario instalar un plugin adicional para que funcione correctamente debido a su compilador propio.

Para usar Lombok, solo tenemos que añadir la dependencia correspondiente en nuestro proyecto Maven o Gradle. Lombok actúa como un procesador de anotaciones que interviene en el momento de la compilación para generar el código necesario, por lo que no afecta al tiempo de ejecución ni añade sobrecarga.

Aunque algunas funcionalidades de Lombok han sido incorporadas en versiones recientes de Java, como el uso de var, sigue siendo muy útil para proyectos que trabajan con versiones antiguas o que quieren mantener el código limpio y conciso.

En definitiva, Lombok nos permite escribir menos código repetitivo y centrarnos en lo que realmente importa, haciendo que nuestras clases Java sean más limpias, legibles y fáciles de mantener.

Lista de reproducción
  1. 1
    JDK vs JRE: ¿qué diferencia hay?
    6 minutos
  2. 2
    ¿Por qué ahora Java versiona tan rápido?
    7 minutos
  3. 3
    Instalar Java en Windows mediante Temurin
    7 minutos
  4. 4
    ¿Por qué hay tantos JDKs y cuál debo elegir? OpenJDK, OracleJDK, Temurin…
    10 minutos
  5. 5
    Cómo instalar y desinstalar el JDK de Java en macOS
    9 minutos
  6. 6
    ¿Qué es Lombok?
    9 minutos
  7. 7
    ¿Qué es sdkman? Guía de instalación y uso
    12 minutos
  8. 8
    Mejores datos de prueba en Java con DataFaker
    9 minutos
  9. 9
    Cómo programo Java sin IDE (y cómo puedes hacerlo tú)
    16 minutos