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 :)