"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Lombok desatado: aumento de la eficiencia de Java con captadores, definidores, constructores, constructores y más

Lombok desatado: aumento de la eficiencia de Java con captadores, definidores, constructores, constructores y más

Publicado el 2024-07-30
Navegar:456

Lombok Unleashed: Elevating Java Efficiency with Getters, Setters, Constructors, Builders, and More

Introducción al Proyecto Lombok

Project Lombok es una biblioteca Java popular que tiene como objetivo reducir el código repetitivo y mejorar la productividad de los programadores ahorrando mucho tiempo y energía al proporcionar anotaciones para generar automáticamente código Java común durante el tiempo de compilación.

¿Qué es el Proyecto Lombok?

Project Lombok aborda la verbosidad de Java al ofrecer anotaciones que eliminan la necesidad de escribir manualmente construcciones de código repetitivas, como métodos getters, setters, constructores, iguales, hashCode y toString. Al anotar campos o clases con anotaciones Lombok, los programadores pueden indicarle al compilador que genere estos métodos automáticamente, reduciendo la cantidad de código repetitivo y haciendo que las clases Java sean más compactas y legibles.

¿Por qué utilizamos el Proyecto Lombok?

El uso de Project Lombok en Java ofrece varios beneficios atractivos que contribuyen a mejorar la productividad, la calidad del código y la capacidad de mantenimiento.
Aquí hay algunas razones para elegir Project Lombok.
Reduce el “Código repetitivo”.
También mejora la reutilización y legibilidad de los códigos.
Es muy sencillo de implementar y no tiene ninguna complejidad.
Se integra fácilmente con “IDE”.

Cómo implementar Lombok en Java en un proyecto Maven

La mayoría de nuestros proyectos se basan en Maven. Entonces, solo tenemos que agregar las dependencias del “Proyecto Lombok” a nuestro archivo “Pom.xml” presente en nuestro proyecto.

Vaya al repositorio de Maven y copie el repositorio de Lombok Maven desde allí, agregue la última dependencia de Lombok en su “Pom.xml” y guárdela, luego actualice el proyecto.

Función Getters y Setters del Proyecto Lombok en Java

En Java, con diferencia la práctica más común es agregar captadores y definidores utilizando el patrón “Java Beans”. La mayoría de los IDE generan código automáticamente para estos patrones.

Veamos cómo el código comprende este enfoque creando captadores y definidores con la ayuda de "Objetos de datos" y "Fábrica de datos":

Objeto de datos sin Lombok

Si bien el enfoque tradicional de JavaBeans para crear métodos getter y setter manualmente hace el trabajo, tiene varios inconvenientes y limitaciones que lo hacen menos deseable, especialmente en los entornos de desarrollo Java modernos, sus inconvenientes se cubren principalmente en Lombok.

Entonces, en lugar de esto, preferimos usar el patrón Lombok. Así es como se puede implementar en Java:

Características del constructor del Proyecto Lombok en Java

Constructores sin Lombok tenemos que definir manualmente cada constructor, lo que puede ser tedioso y propenso a errores, especialmente para clases con muchos campos. Además, necesitamos manejar varias configuraciones del constructor, lo que puede aumentar la complejidad del código.

Lombok simplifica este proceso con las anotaciones @NoArgsConstructor, @AllArgsConstructor y @RequiredArgsConstructor.

Constructores sin Lombok

El uso de anotaciones de Lombok reduce la cantidad de código repetitivo que debe escribirse manualmente. Con Lombok, simplemente anota la clase y los campos, y los constructores se generan automáticamente según los criterios especificados. Esto conduce a un código más limpio y conciso.

Varias características y propiedades de Lombok

  1. A la generación de cadenas
  • En Java, toString() es un método definido en la clase java.lang.Object, que sirve para devolver una representación de cadena de un objeto. El método toString() es heredado por todas las clases en Java, y su implementación predeterminada en la clase Object devuelve una cadena que contiene el nombre de la clase seguido por el símbolo "arroba" (@) y la representación hexadecimal del código hash del objeto.
  • Sin embargo, es posible que la implementación predeterminada de toString() proporcionada por Object no siempre sea significativa o útil para clases específicas. Por lo tanto, es una práctica común que los desarrolladores anulen el método toString() en sus propias clases para proporcionar una representación de cadena personalizada que describa mejor el estado o las propiedades del objeto.
  • Según nuestro ejemplo, una clase de perfil podría anular toString() para devolver una cadena que contenga el nombre, el apellido, la designación y la información de edad. Anular toString() permite imprimir o registrar fácilmente información de objetos en un formato legible por humanos, lo que puede resultar útil para depurar, registrar o mostrar información a los usuarios.
  • Sin usar las anotaciones ToString Lombok, tenemos que implementar manualmente el método toString() dentro de la clase Profile. Concatenamos los campos Nombre, Apellido, Designación y Edad para crear la representación de cadena deseada. Esta implementación manual logra el mismo resultado que la anotación @ToString de Lombok.

Sin utilizar la función de anotaciones ToString

  • La anotación @ToString genera un método toString() para la clase, proporcionando una representación de cadena de sus campos. No es necesario escribir uno nosotros mismos y mantenerlo mientras enriquecemos nuestro modelo de datos.
  • Con esta anotación, llamar a toString() en una instancia de perfil devolverá una cadena que contiene los valores de sus campos.
  • Las anotaciones @Exclude pueden ser útiles para diferentes anotaciones como Getters, Setters, ToString, EqualAndHashCode, etc. Entendamos eso junto con el ejemplo de anotación @ToString.
  • Anotando el campo de designación con @ToString(exclude = {“designation”})
  • Lombok lo excluye de ser incluido en el método toString() generado por @ToString. Esto puede resultar útil si desea evitar mostrar ciertos campos en la representación de cadena de un objeto.

2. Generación EqualAndHashCode

  • En Java, equals() y hashCode() son dos métodos comúnmente utilizados para implementar la igualdad de objetos y la generación de código hash, respectivamente.
  • Método igual a (): El método igual a () se utiliza para comparar la igualdad de dos objetos. De forma predeterminada, el método equals() proporcionado por la clase Object compara referencias de objetos, lo que significa que devuelve verdadero solo si los dos objetos que se comparan son la misma instancia en la memoria. Sin embargo, a menudo es necesario anular el método equals() en clases personalizadas para definir una noción significativa de igualdad basada en los atributos del objeto.
  • Método hashCode(): El método hashCode() se utiliza para generar un valor de código hash para un objeto. Un código hash es un valor entero que representa el estado de un objeto y normalmente se usa en estructuras de datos basadas en hash, como tablas hash. El método hashCode() es importante porque permite almacenar y recuperar objetos de manera eficiente en colecciones basadas en hash.
  • En nuestro ejemplo, hemos implementado y anulado manualmente el método equals() para comparar la igualdad de los campos de dos objetos Profile, y el método hashCode() para generar un código hash basado en los campos.
  • Usamos el método Objects.equals() de la clase java.util.Objects para comparar la igualdad de los campos y el método Objects.hash() para generar el código hash.

Sin usar la función de anotaciones EqualAndHashCode

  • La anotación @EqualsAndHashCode genera métodos iguales() y hashCode() basados ​​en los campos de la clase.
  • Con esta anotación, Lombok genera los métodos equals() y hashCode() usando todos los campos de la clase.
  • Esto elimina la necesidad de implementar manualmente estos métodos, lo que reduce el código repetitivo y mejora la capacidad de mantenimiento del código.

3. Anotaciones de datos
Sin utilizar anotaciones @data, tenemos que implementar manualmente las funciones getters, setters y Constructors en nuestro código.

  • Sin utilizar la función Anotaciones de datos

  • La anotación @data es un atajo conveniente que incluye @Getter, @setter, @NoArgsConstructor, @AllArgsConstructor, @RequiredArgsConstructor, @ToString, @EqualsAndHashCode y muchas más anotaciones.

  • Usando @data, Lombok genera automáticamente estos métodos en función de los campos declarados en la clase. Esto reduce significativamente la cantidad de código repetitivo que necesitamos escribir y mantener, lo que hace que nuestro código sea más conciso y legible.

  1. Patrón de constructor
  • Volviendo a nuestro ejemplo de Perfil, construir una nueva instancia requiere emplear un constructor con un número potencialmente numeroso de cuatro argumentos, una tarea que se vuelve difícil de manejar a medida que introducimos atributos adicionales a la clase.
  • Afortunadamente, Lombok proporciona una solución sólida con su función @builder, que facilita la utilización del patrón Builder para crear nuevas instancias. Integremos esta característica en nuestra clase de Perfil.

paquete org.ejemplo.objetos de datos;

importar lombok.*;

@Adquiridor
@setter
@NoArgsConstructor
@AllArgsConstructor
@RequiredArgsConstructor
@ToString(excluir = {"designación"})
@EqualsAndHashCode
@constructor
@datos
Perfil de clase pública {
cadena privada nombre;
cadena privada apellido;
designación de cadena privada;
edad int privada;

public static void main(String[] args) {

// Creando una instancia de perfil usando el constructor
Perfil perfil = Profile.builder()
.primerNombre("Parte")
.apellido("Kathrotiya")
.designation("Ingeniero de automatización de control de calidad")
.edad(23)
.construir();
}
}

Delombok

  • Delombok es una herramienta proporcionada por Project Lombok que revierte los efectos de las anotaciones de Lombok, esencialmente "desombokificando" su código. Le permite convertir el código fuente de Java que contiene anotaciones de Lombok en código Java simple expandiendo las anotaciones y reemplazándolas con el código repetitivo correspondiente que generarían.
  • El objetivo principal de Delombok es facilitar la compatibilidad y la interoperabilidad con entornos o herramientas que no admiten directamente las anotaciones de Lombok. Por ejemplo, si necesita compartir su código con desarrolladores que no tienen Lombok instalado en su entorno de desarrollo, o si desea analizar o refactorizar código anotado por Lombok usando herramientas que no entienden las anotaciones de Lombok, puede usar Delombok para convertir. el código en una forma que sea comprensible y utilizable en esos contextos.
  • Delombok se puede invocar a través de la línea de comando o integrarse en herramientas de compilación como Maven o Gradle. Cuando ejecuta Delombok en su código fuente, procesa los archivos Java, expande las anotaciones de Lombok y genera nuevos archivos Java sin ninguna anotación de Lombok. El código resultante es funcionalmente equivalente al código original pero sin dependencia alguna de Lombok.
  • En general, Delombok es una herramienta útil proporcionada por Project Lombok que mejora la interoperabilidad y la capacidad de mantenimiento de las bases de código utilizando anotaciones de Lombok, lo que permite a los desarrolladores aprovechar los beneficios de Lombok y al mismo tiempo garantizar la compatibilidad con una amplia gama de entornos y herramientas de desarrollo.

Conclusión

Si bien esta publicación destaca las funciones que considero más beneficiosas, Lombok ofrece una gran cantidad de funcionalidades y personalizaciones adicionales.
La documentación de Lombok es un recurso invaluable que proporciona explicaciones detalladas y ejemplos para cada anotación. Si esta publicación te intriga, te insto a que profundices en la documentación de Lombok para descubrir aún más posibilidades.
Además, el sitio del proyecto ofrece guías completas sobre la integración de Lombok en varios entornos de programación. Ya sea que esté utilizando Eclipse, NetBeans, IntelliJ u otros, tenga la seguridad de que Lombok se integra perfectamente con su flujo de trabajo. Como alguien que cambia frecuentemente entre IDE, puedo dar fe de la versatilidad y confiabilidad de Lombok en todas las plataformas.
En general, Project Lombok ofrece un conjunto integral de funciones que agilizan el desarrollo de Java, reducen la verbosidad del código y promueven las mejores prácticas.
Project Lombok ofrece un conjunto completo de características que agilizan las pruebas de Java, reducen la verbosidad del código y promueven las mejores prácticas. Al incorporar constructores de Lombok y constructores de Lombok, los evaluadores pueden simplificar aún más su código y mejorar la capacidad de mantenimiento.

Declaración de liberación Este artículo se reproduce en: https://dev.to/jignect_technologies/lombok-unleashed-elevating-java-efficiency-with-getters-setters-constructors-builders-and-more-mfm?1 Si hay alguna infracción, por favor contacto Study_golang@163 .comeliminar
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3