Project Lombok es una biblioteca para java que se conecta con su IDE (Integrated Development Environment – Entorno de Desarrollo Integrado) y pone a disposición del programador herramientas para simplificar la escritura de código fuente. Actualmente Lombok soporta los IDEs Eclipse, Netbeans, IntelliJ IDEA, Microsoft Visual Studio Code y JBoss Developer Studio.
Lombok con sus annotation le permite al programador evitar la escritura repetitiva de código a través de la introducción de anotaciones en las clases java las cuales reemplazan métodos como el constructor, get, set, toString, equals, hashcode, etc. ahorrando tiempo y mejorando la legibilidad de nuestro código.
Pero veamos con un pequeño ejemplo de lo que es capaz Lombok, lo primero que necesitas es descargar el JAR de Project Lombok actualmente en la versión Lombok 1.18.6 Si usas Maven puedes visitar esta pagina
A continuación tenemos una clase Persona.java la cual cuenta con sus atributos y métodos GET/SET ademas de dos constructores de clase, una sin argumentos y otra con todos los argumentos.
public class Persona { private int dni; private String nombre; private String mail; public Persona() { } public Persona(int dni, String nombre, String mail) { this.dni = dni; this.nombre = nombre; this.mail = mail; } public int getDni() { return dni; } public void setDni(int dni) { this.dni = dni; } public String getNombre() { return nombre; } public void setNombre(String nombre) { this.nombre = nombre; } public String getMail() { return mail; } public void setMail(String mail) { this.mail = mail; } }
Ahora usando Lombok la misma clase Persona:
import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; /** * @see https://www.jc-mouse.net/ * @author mouse */ @NoArgsConstructor @AllArgsConstructor @Builder public class Persona { private @Getter @Setter int dni; private @Getter @Setter String nombre; private @Getter @Setter String mail; }
El ahorro de código es evidente, pero expliquemos en que consisten la anotaciones:
Si implementamos esta clase en nuestro proyecto veremos como los métodos y constructores son reconocidos por nuestro IDE y por lo tanto podemos escribir nuestro código como siempre hacemos:
public class Main { public static void main(String[] args) { Persona p1 = new Persona(); p1.setDni(1); p1.setNombre("Armando Bronca Segura"); p1.setMail("armando123@mail.com"); System.out.println(p1.getDni()); System.out.println(p1.getNombre()); System.out.println(p1.getMail()); Persona p2 = new Persona(2,"Elsa Capunta","nomaslapuntita@mail.com"); System.out.println(p2.getDni()); System.out.println(p2.getNombre()); System.out.println(p2.getMail()); } }
Ejecutando el proyecto:
Abra notado el perspicaz lector 🙂 que no usamos la anotación @Builder, no lo olvidamos solo lo dejamos para el final porque esta anotación es bastante interesante. Esta anotación permite implementar la clase utilizando el patrón de diseño Builder y nos ahora bastante código. ¿Como funciona?
public class Main { public static void main(String[] args) { Persona p3 = new Persona.PersonaBuilder() .dni(3) .nombre("Maria Fernanda Blazquez") .mail("fey@mail.com") .build(); System.out.println(p3.getDni()); System.out.println(p3.getNombre()); System.out.println(p3.getMail()); } }
Puede ver el resto de las anotaciones en la pagina web del proyecto Lombok features
enjoy!!!
En este tutorial veremos lo fácil que es personalizar las pestañas de un JTabbedPane con unas cuantas lineas de código y[...]
Necesitamos: Android Studio 2 tipos de fuente TTF Agregar Archivo de fuente al proyecto Paso 1: Crear carpeta assets Cli[...]
¿Que es la facturación electrónica? Una factura es un documento que sirve para describir el costo de los servicios y des[...]
En post pasados [Ejemplo práctico de MVC java Swing con Netbeans, 3 en raya java con MVC y Netbeans , MVC: Modelo, Vista[...]
Acierta los colores o Adivina los colores es un sencillo juego que consiste en que dado 6 colores «rojo», «verde», «salm[...]
pixilart no es solo una herramienta online sino una comunidad de diseñadores a quienes les encanta el arte hecha con «pi[...]