Introducción al Proyecto Lombok en Java y ¿Cómo empezar?

Java es un lenguaje muy popular, pero tiene algunos inconvenientes. Uno de los inconvenientes más populares es que todavía necesitamos escribir los códigos repetitivos como getters, setters y el método toString() en Java, mientras que Kotlin y Scala, que también están basados ​​en JVM, no lo necesitan y, por lo tanto, este es el razón de su creciente popularidad en la comunidad. Aquí es donde Lombok entra en escena y supera este inconveniente de Java. 
Proyecto Lombokes una herramienta de biblioteca Java que se utiliza para minimizar/eliminar el código repetitivo y ahorrar el valioso tiempo de los desarrolladores durante el desarrollo con solo usar algunas anotaciones. Además, también aumenta la legibilidad del código fuente y ahorra espacio. Pero podría estar pensando que hoy en día, todos usan IDE que brindan una opción para generar estos códigos repetitivos, entonces, ¿cuál es el uso de Lombok? Cada vez que usamos IDE para generar estos códigos repetitivos, simplemente nos ahorramos escribir todos estos códigos, pero en realidad está presente en nuestro código fuente y aumenta las LOC (líneas de código) y reduce la capacidad de mantenimiento y la legibilidad. Por otro lado, Lombok agrega todos estos códigos repetitivos en el momento de la compilación en el archivo “.class” y no en nuestro código fuente. Comparemos nuestro código fuente con y sin usar Lombok.

1. Sin Lombok: una clase de modelo Java con cuatro campos privados y sus captadores, definidores, constructor sin argumentos, construcción parametrizada y método toString.

Java

public class Employee {
 
    private Integer employeeId;
    private String name;
    private String company;
    private String emailId;
 
    public Employee() {}
 
    public Employee(Integer employeeId, String name,
                    String company, String emailId)
    {
        super();
        this.employeeId = employeeId;
        this.name = name;
        this.company = company;
        this.emailId = emailId;
    }
 
    public Integer getEmployeeId() { return employeeId; }
 
    public void setEmployeeId(Integer employeeId)
    {
        this.employeeId = employeeId;
    }
 
    public String getName() { return name; }
 
    public void setName(String name) { this.name = name; }
 
    public String getCompany() { return company; }
 
    public void setCompany(String company)
    {
        this.company = company;
    }
 
    public String getEmailId() { return emailId; }
 
    public void setEmailId(String emailId)
    {
        this.emailId = emailId;
    }
 
    @Override public String toString()
    {
        return "Employee ["
            + "employeeId=" + employeeId + ", name=" + name
            + ", "
            + " company=" + company + ", emailId=" + emailId
            + "]";
    }
}

2. Con Lombok: una clase de modelo Java con cuatro campos privados y sus captadores, definidores, constructor sin argumentos, construcción parametrizada y método toString utilizando anotaciones de Lombok. 

Java

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
 
@NoArgsConstructor
@AllArgsConstructor
@ToString
public class Employee {
    private @Getter @Setter Integer employeeId;
    private @Getter @Setter String name;
    private @Getter @Setter String company;
    private @Getter @Setter String emailId;
}

La diferencia es claramente visible en los códigos. El código fuente original contiene alrededor de 60 líneas de código que Lombok ha reducido a alrededor de 20 líneas de código solamente. No solo reduce las líneas de código, sino que también aumenta la legibilidad y la capacidad de mantenimiento del código fuente.

¿Cómo configurar el proyecto Lombok para eclipse?  

1. Descarga el archivo jar de Lombok desde este enlace oficial .

2. Haga doble clic en el archivo jar descargado para ejecutarlo. Aparecerá una GUI para especificar el IDE en el que desea conectarlo.  

3. Haga clic en especificar una ubicación y seleccione el IDE.

4. Haga clic en instalar para completar la instalación y luego salga del instalador.

5. Para verificar la instalación correcta, vaya al IDE de Eclipse , seleccione ayuda y luego sobre el eclipse. Verá el proyecto Lombok instalado allí. 

Anotaciones de Lombok:  Lombok proporciona un conjunto de anotaciones para facilitar nuestra vida de codificación. Veamos las pocas anotaciones de Lombok más utilizadas. 

1. @Getter y @Setter: estas anotaciones proporcionan los métodos getter y setter para un campo. Estas anotaciones se pueden utilizar tanto a nivel de campo como de clase. La anotación @Getter genera un método getter con tipo de acceso público que simplemente devuelve el campo y con el nombre getName() si el nombre del campo es «Nombre». La anotación @Setter genera un método setter con tipo de acceso público que devuelve void y toma un solo parámetro para asignar el valor al campo. El setter predeterminado tendrá el nombre setName() si el nombre del campo es «Nombre».  

Java

import lombok.Getter;
import lombok.Setter;
 
public class Employee {
    private @Getter @Setter Integer employeeId;
    private @Getter @Setter String name;
    private @Getter @Setter String company;
    private @Getter @Setter String emailId;
}

2. @NoArgsConstructor: esta anotación se usa para generar un constructor sin argumentos. Tiene un cuerpo vacío y no hace nada. Generalmente se usa en combinación con algún otro constructor parametrizado en uso. Es necesario cuando desea generar un objeto de la clase sin pasar argumentos en el constructor. 
 

Java

import lombok.NoArgsConstructor;
 
@NoArgsConstructor
public class Employee {
    private Integer employeeId;
    private String name;
    private String company;
    private String emailId;
}

3. @AllArgsConstructor: esta anotación se usa para generar un constructor parametrizado que acepta un solo parámetro para cada campo y los inicializa usándolo. Se requiere cuando desea generar un objeto de la clase pasando los valores iniciales de los campos en el constructor. 
 

Java

import lombok.AllArgsConstructor;
 
@AllArgsConstructor
public class Employee {
    private Integer employeeId;
    private String name;
    private String company;
    private String emailId;
}

4. @ToString: esta anotación se usa para anular el método toString() y generar una implementación predeterminada para él. La implementación predeterminada imprime el nombre de la clase y los campos en orden, separados por comas. También puede omitir algunos campos que no desea imprimir al anotarlos con @ToString.Exclude
 

Java

import lombok.ToString;
 
@ToString
public class Employee {
    private Integer employeeId;
    private String name;
    private String company;
    private String emailId;
}

5. @EqualsAndHashCode: esta anotación se usa para anular los métodos equals() y hashCode() y proporciona una implementación predeterminada para esto. La implementación predeterminada usa todos los campos no estáticos, y podemos modificarla y excluir algunos campos usando la anotación @EqualsAndHashCode.Exclude
 

Java

import lombok.EqualsAndHashCode;
 
@EqualsAndHashCode
public class Employee {
    private Integer employeeId;
    private String name;
    private String company;
    private String emailId;
}

6. @Data: esta anotación es una anotación de acceso directo y agrupa las anotaciones @ToString , @Getter , @Setter , @EqualsAndHashCode y @RequiredArgsConstructor en una sola anotación. Esta anotación proporciona todo el código repetitivo que se usa normalmente en las clases modelo de Java como getters para todos los campos, setter para todos los campos no finales, una implementación predeterminada para toString(), equals() y hashCode() usando todos los campos de la clase y un constructor que inicializa todos los campos de la clase. 

Java

import lombok.Data;
 
@Data
public class Employee {
    private Integer employeeId;
    private String name;
    private String company;
    private String emailId;
}

7. @Builder: esta anotación se puede usar para eliminar el código repetitivo involucrado en la configuración de propiedades para un objeto. Esto es útil para POJO que tienen muchos campos. Con esta anotación, la configuración de propiedades para un objeto se puede hacer en una sola declaración de código, lo que hace es legible y limpio.

Java

import lombok.Builder;
  
@Builder
public class Employee {
    private Integer employeeId;
    private String name;
    private String company;
    private String emailId;
}

Ejemplo: uso de @Builder 

Java

import java.io.*;
 
class LombokTest {
    public static void main (String[] args) {
        Employee employee = Employee.builder().employeeId(21).name("GFG").company("GeeksForGeeks")
          .emailId("gfg@geeks.com").build();
    }
}

Publicación traducida automáticamente

Artículo escrito por raman_257 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *