intro

Diariamente cuando programamos una clase, nos encontramos con la misma tarea de escribir los métodos Setter, Getter, Constructores, etc. Lombok es una librería que genera ese código repetitivo por nosotros.

No de la forma que lo hacen los IDE como Eclipse o IntelliJ IDEA dentro del archivo .java, Lombok genera lo mismo, pero dentro del archivo compilado .class.

Logrando un código más limpio y de fácil mantenimiento, en el que por medio de anotaciones vamos definiendo lo que necesitamos hacer.

Instalación

Podemos descargar el jar “ejecutable” del proyecto Lombok de su Site Oficial.

Doble click o por consola:    $ java -jar lombok.jar

En mi caso particular especifique el path de mi Eclipse Neon para que instale el plugin y el IDE pueda compilar.

 

instalacion

 

Tenemos que agregar el jar a nuestro proyecto, si usamos maven por ej. agregamos la dependencia en el pom.xml.

<dependencies>
   <dependency>
       <artifactId>lombok</artifactId>
       <groupId>org.projectlombok</groupId>
   </dependency>
</dependencies>

 

Modificadores de Objetos

A continuación voy a describir las anotaciones, que según mi opinión son las mas utilizadas a la hora de desarrollar, sus nombres son por demás de auto explicativos.

Vale aclarar, que a la derecha de las siguientes imágenes, la vista Outline de Eclipse muestra las propiedades y métodos creados a mano y también los métodos que Lombok va generando.

@Getter y @Setter, para definir con anotaciones los métodos Getter y Setter o ambos a cada propiedad del objeto. En la vista Outline podemos ver los métodos. También agregamos los “import” correspondientes.

getterandsetter2

 

En la siguiente imagen se puede ver el uso de la clase Auto y los métodos Getter y Setter disponibles de su clase.

myclass

 

@Data, si queremos todos los métodos Getter y Setter para cada propiedad del objeto y ademas contar con equals(), hashCode(), toString() y un Constructor público con todas las propiedades marcadas con @NonNull, esta es la anotación que necesitamos.

data2

 

@Builder, nos permite implementar el patrón de diseño Builder.

builder

 

@AllArgsConstructor y @NoArgsConstructor para constructores con y sin argumentos respectivamente.

constructores

 

 

Tratamiento de Logs

Lombok nos provee soporte para el tratamiento de Logs por medio de las siguientes anotaciones: @CommonsLog, @JBossLog, @Log, @Log4j, @Log4j2, @Slf4j, @XSlf4j. Para más detalle podemos ir Aquí.

 

Para terminar

Comenzamos a usarla en nuestro proyecto, y en mi opinión es una librería simple y fácil de usar, con un conjunto reducido de anotaciones, que permiten optimizar nuestras clases del código repetitivo y a su vez no perder las ventajas de estos métodos. Vale entonces al menos darle una mirada y probarla.