Lombok, como usarlo con Java

Buenas a todas y todos, volvemos con tutoriales, esta vez con la librería de Lombok con Java, que nos ayudará a simplificar muchísimo nuestro código, ¿preparado? vamos a ello :)


En primer lugar, ¿Qué es Lombok?

Lombok es una librería para Java que se lanzó en el año 2009, ya hace casi 12 años de eso, ¡cuánto tiempo! A lo largo de este tiempo se ha ido actualizando y mejorando.


Lombok utiliza las anotaciones para a través de ellas reducir el código de nuestros proyectos, ahorrándonos tiempo y mejorando la legibilidad de nuestro código.



Añadiendo Lombok a nuestro proyecto


Bien, para añadir la librería a nuestro proyecto de Java con Maven, basta con añadir la siguiente dependencia de Maven en el fichero pom.xml:


<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.12</version>
    <scope>provided</scope>
</dependency>

Ahora ya tenemos Lombok en nuestro proyecto.


¿Qué hace Lombok por mí?


Esta librería hace muchas cosas en lo que se refiere a eliminar código recurrente, por ejemplo, cuando creamos clases en Java y le añadimos sus getters y setters, casi de forma automática, o por ejemplo el método toString(), pero eso no es todo, veamos parte por parte.


Getters / Setters:


Cómo hemos dicho, cuando creamos una clase le añadimos estos métodos:


public class Lombok {
    private int atr1;
    private String atr2;
    private boolean atr3;

    public int getAtr1() {
        return atr1;
    }

    public void setAtr1(int atr1) {
        this.atr1 = atr1;
    }

    public String getAtr2() {
        return atr2;
    }

    public void setAtr2(String atr2) {
        this.atr2 = atr2;
    }

    public boolean isAtr3() {
        return atr3;
    }

    public void setAtr3(boolean atr3) {
        this.atr3 = atr3;
    }
}

Como vemos, es bastante código y simple, pero necesario, ¿cómo quedaría esto con Lombok? Pues tal que así:


import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
public class Lombok {
    private int atr1;
    private String atr2;
    private boolean atr3;
}

¡Qué cambio!, estas anotaciones hacen que esta clase tenga estos métodos sin necesidad de definirlos.


Chequear nulabilidad:


Cuándo queremos comprobar si un parámetro del constructor o un método es nulo, normalmente hacemos esto:

if(param != null)
else throw new Exception(...)

Con Lombok todo es más fácil y tan sólo tendremos que ponerle esta anotación al lado del parámetro:

public void setAtr(@NonNull String str) {
    
}

La etiqueta @NonNull hace exactamente lo mismo que la comprobación anterior.


Método toString:


Este método tan utilizado, famoso, y laaaargo cuando tenemos muchos parámetros.


Sin Lombok:

public class Lombok {
    private int atr1;
    private String atr2;
    private boolean atr3;
    

    @Override
    public String toString() {
        return "Lombok{" +
                "atr1=" + atr1 +
                ", atr2='" + atr2 + '\'' +
                ", atr3=" + atr3 +
                '}';
    }
}

Con Lombok:

import lombok.ToString;

@ToString
public class Lombok {
    private int atr1;
    private String atr2;
    private boolean atr3;
    
}

Con esta etiqueta, Lombok genera automáticamente un método toString(), como el que se muestra anteriormente.


Equals / Hashcode:


Estos métodos junto con el toString(), también son muy conocidos y muy utilizados. Y es tan sencillo como añadir la etiqueta @EqualsAndHashCode encima de nuestra clase, como en los ejemplos anteriores.


Constructores:


Podemos generar diferentes tipos de constructores a golpe de anotación, para ello tenemos las siguientes anotaciones:


@NoArgsConstructor: esto generará un constructor sin parámetros.


@RequiredArgsConstructor: generará un constructor con cada parámetro que sea necesario.


@AllArgsConstructor: generará un constructor con todos los parámetros.


La anotación maestra:


Con @Data podemos englobar todas las demás anotaciones (ToString, Getters, Setters, EqualsAndHashCode y RequiredArgsConstructor), con sólo colocarla encima de nuestra clase tenemos todas estas anotaciones y funcionalidades, ¡qué simple!



Existen muchas más anotaciones como @Builder, pero ya te dejo a ti que las investigues, espero que disfrutes de una vida más cómoda con Lombok, nos vemos en la próxima :)


55 vistas0 comentarios

Entradas Recientes

Ver todo

©2020 por Juanma Perez.