Blog dedicado a la programación y a la informática en general

Ir al contenido | Ir al menú | Ir a las búsquedas

Project Lombok: Introducción

Project Lombok es una librería Java que nos ayuda a hacer el código más legible (y ahorrarnos picar código) mediante anotaciones.

Es conocido por permitirnos ahorrarnos los getters y setters, pero tiene mucho más potencial, además es compatible con nuestros proyectos en Android.

En esta entrada trabajaremos en un entorno Eclipse. Para empezar tendremos que bajarnos la librería desde la web oficial del proyecto o bien pulsando aquí.

Una vez la tengamos tendremos que instalarla en Eclipse, esto se hace pulsando doble clic en el fichero lombok.jar o mediante la línea de comandos:

> java -jar lombok.jar

Nos aparecerá un asistente que nos detectará las instalaciones de eclipse que tengamos, permitiéndonos añadir una manualmente, y podremos seleccionar en cuales queremos instalar la librería.

instalacion.png

La instalación nos avisa de que si usamos un parámetro personalizado de "-vm parameter" tendremos que añadir el parámetro -vmargs -javaagent:lombok.jar

Ahora ejecutaremos Eclipse y crearemos un proyecto básico de Java (nivel de compilación al menos 1.5) y añadiremos la librería lombok.jar

buildpath.jpg

El siguiente paso es crear una clase que nos sirva de modelo para las pruebas, por ejemplo:

public class Coche {
	private String matricula;
	private String marca;
	private String modelo;
	private Long kilometros;
}

Anotación @Data

La anotación @Data nos servirá para que Lombok se encargue de añadir por nosotros los getters y los setters, el constructor y los métodos ToString(), equals() y hashCode().

Si no quisiéramos todo tendríamos que usar las notaciones propias para añadir lo que deseemos, por ejemplo: @ToString, @Getter y @Setter en cada propiedad, @EqualsAndHashCode, etc.

En resumen, con todo nuestra clase quedaría así:

import lombok.Data;

public @Data class Coche {
	private String matricula;
	private String marca;
	private String modelo;
	private Long kilometros;
}

En la ventana Outline podremos ver los métodos de la clase que nos ha generado Lombok y ya podremos utilizarlos en la aplicación.

Si nuestra clase extiende de otra, al usar @Data nos dará un Warning indicando que los métodos hashCode() y equals() deben llamar a super(), para solventar esto se le tiene que indicar haga la llamada mediante la anotación @EqualsAndHashCode indicándole (callSuper = true):

import lombok.Data;
import lombok.EqualsAndHashCode;

@EqualsAndHashCode(callSuper = true)
public @Data class Coche extends Vehiculo {
	private String matricula;
	private String marca;
	private String modelo;
	private Long kilometros;
}

Anotación @ToString

La anotación @ToString permite una serie de parámetros además de callSuper = true.

  • Mediante el parámetro includeFieldNames = true indicamos que el método toString() incluya los nombre de las propiedades de la clase junto a su valor. Esto es útil para depurar.
  • Podemos indicar que alguna propiedad no salga en el toString() mediante el parámetro exclude="propiedad".

Por ejemplo, si tenemos nuestra clase así:

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

@EqualsAndHashCode(callSuper = true)
@ToString(exclude = "kilometros", callSuper = true, includeFieldNames = true)
public @Data class Coche extends Vehiculo {
	private String matricula;
	private String marca;
	private String modelo;
	private Long kilometros;
}

Y ejecutáramos este programa:

public class Main {
	public static void main(String[] args) {
		Coche c = new Coche();
		c.setKilometros(9999L);
		c.setMarca("KIA");
		c.setModelo("RIO");
		c.setMatricula("0000 ABC");

		System.out.println(c.toString());
	}
}

El método toString() nos devolvería esto:

Coche(super=Coche@f8dcd300, matricula=0000 ABC, marca=KIA, modelo=RIO)

En la página oficial https://projectlombok.org/ puedes ver más funcionalidades, por ejemplo, las anotaciones @NonNull y @Cleanup son interesantes para ahorrarnos tiempo, código y errores y tienen ejemplos muy claros de su uso.

En la siguiente entrada mostraré cómo añadir la librería a un proyecto Android.

Saludos!

Comentarios

1. El Miércoles, 6 de Febrero de 2019, 13:03 por Сialis

Greetings! Very helpful advice within this post!
It is the little changes which will make the biggest changes.
Many thanks for sharing!

Añadir un comentario

El código HTML se muestra como texto y las direcciones web se transforman automáticamente.

Discusiones sobre el mismo tema

URL de retroenlace : https://www.dosmweb.com/blog/index.php?trackback/12

Fuente de los comentarios de esta entrada