"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Lombok Unleashed: elevando a eficiência do Java com getters, setters, construtores, construtores e muito mais

Lombok Unleashed: elevando a eficiência do Java com getters, setters, construtores, construtores e muito mais

Publicado em 30/07/2024
Navegar:504

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

Introdução ao Projeto Lombok

Project Lombok é uma biblioteca Java popular que visa reduzir o código padrão e aumentar a produtividade dos codificadores, economizando muito tempo e energia, fornecendo anotações para gerar automaticamente código Java comum durante o tempo de compilação

O que é o Projeto Lombok?

O Projeto Lombok aborda a verbosidade do Java, oferecendo anotações que eliminam a necessidade de escrever manualmente construções de código repetitivas, como métodos getters, setters, construtores, equals, hashCode e toString. Ao anotar campos ou classes com anotações Lombok, os codificadores podem instruir o compilador a gerar esses métodos automaticamente, reduzindo a quantidade de código padrão e tornando as classes Java mais compactas e legíveis.

Por que estamos usando o Projeto Lombok?

Usar o Projeto Lombok em Java oferece vários benefícios atraentes que contribuem para melhorar a produtividade, a qualidade do código e a capacidade de manutenção.
Aqui estão alguns motivos para escolher o Projeto Lombok.
Reduz o “Código Boilerplate”.
Também melhora a reutilização e legibilidade dos códigos.
É muito simples de implementar e não apresenta nenhuma complexidade.
Integra-se facilmente com “IDEs”.

Como implementar Lombok em Java em um projeto Maven

A maioria dos nossos projetos é baseada no Maven. Então, só temos que adicionar dependências do “Projeto Lombok” ao nosso arquivo “Pom.xml” presente em nosso projeto.

Vá para o repositório maven e copie o repositório Lombok Maven de lá, adicione a dependência lombok mais recente em seu “Pom.xml” e salve-o, em seguida, atualize o projeto.

Recurso Getters, Setters do Projeto Lombok em Java

Em Java, de longe a prática mais comum é adicionar getters e setters usando o padrão “Java Beans”. A maioria dos IDEs gera automaticamente código para esses padrões.

Vamos ver o código entender essa abordagem criando getter e setter com a ajuda de “Data Objects” e “Data Factory”:

Objeto de dados sem Lombok

Embora a abordagem JavaBeans tradicional para criar métodos getter e setter manualmente faça o trabalho, mas tem várias desvantagens e limitações que a tornam menos desejável, especialmente em ambientes de desenvolvimento Java modernos, suas desvantagens são abordadas principalmente no Lombok.

Então, em vez disso, preferimos usar o padrão Lombok. Aqui está como ele pode ser implementado em Java:

Recursos do construtor do Projeto Lombok em Java

Construtores sem Lombok, temos que definir manualmente cada construtor, o que pode ser tedioso e sujeito a erros, especialmente para classes com muitos campos. Além disso, precisamos lidar com várias configurações de construtor, o que pode aumentar a complexidade do código.

Lombok simplifica esse processo com anotações @NoArgsConstructor, @AllArgsConstructor e @RequiredArgsConstructor.

Construtores sem Lombok

O uso de anotações do Lombok reduz a quantidade de código clichê que precisa ser escrito manualmente. Com o Lombok, você simplesmente anota a classe e os campos, e os construtores são gerados automaticamente com base nos critérios especificados. Isso leva a um código mais limpo e conciso.

Vários recursos e propriedades do Lombok

  1. Geração ToString
  • Em Java, toString() é um método definido na classe java.lang.Object, que tem o propósito de retornar uma representação em string de um objeto. O método toString() é herdado por todas as classes em Java, e sua implementação padrão na classe Object retorna uma string contendo o nome da classe seguido pelo símbolo “arroba” (@) e a representação hexadecimal do código hash do objeto.
  • No entanto, a implementação padrão de toString() fornecida por Object pode nem sempre ser significativa ou útil para classes específicas. Portanto, é prática comum que os desenvolvedores substituam o método toString() em suas próprias classes para fornecer uma representação de string personalizada que descreva melhor o estado ou as propriedades do objeto.
  • De acordo com nosso exemplo, uma classe Profile pode substituir toString() para retornar uma string contendo informações de firstName, lastName, designação e idade. Substituir toString() permite imprimir ou registrar facilmente informações de objetos em um formato legível por humanos, o que pode ser útil para depuração, registro ou exibição de informações aos usuários.
  • Sem usar anotações ToString Lombok, temos que implementar manualmente o método toString() dentro da classe Profile. Concatenamos os campos firstName, lastName, designation e age para criar a representação de string desejada. Esta implementação manual alcança o mesmo resultado que a anotação @ToString do Lombok.

Sem usar o recurso ToString Annotations

  • A anotação @ToString gera um método toString() para a classe, fornecendo uma representação em string de seus campos. Não há necessidade de escrever um e mantê-lo enquanto enriquecemos nosso modelo de dados.
  • Com esta anotação, chamar toString() em uma instância de profile retornará uma string contendo os valores de seus campos.
  • As anotações
  • @Exclude podem ser úteis para todas as anotações diferentes, como Getters, Setters, ToString, EqualAndHashCode, etc. Vamos entender isso junto com o exemplo de anotação @ToString.
  • Anotando o campo de designação com @ToString(exclude = {“designation”})
  • Lombok exclui-o de ser incluído no método toString() gerado por @ToString. Isso pode ser útil se você quiser evitar a exibição de determinados campos na representação de string de um objeto.

2. Geração EqualAndHashCode

  • Em Java, equals() e hashCode() são dois métodos comumente usados ​​para implementar igualdade de objetos e geração de código hash, respectivamente.
  • Método
  • equals(): O método equals() é usado para comparar dois objetos quanto à igualdade. Por padrão, o método equals() fornecido pela classe Object compara referências de objetos, o que significa que ele retorna verdadeiro apenas se os dois objetos que estão sendo comparados forem a mesma instância na memória. No entanto, muitas vezes é necessário substituir o método equals() em classes personalizadas para definir uma noção significativa de igualdade com base nos atributos do objeto.
  • Método
  • hashCode(): O método hashCode() é usado para gerar um valor de código hash para um objeto. Um código hash é um valor inteiro que representa o estado de um objeto e normalmente é usado em estruturas de dados baseadas em hash, como tabelas hash. O método hashCode() é importante porque permite que os objetos sejam armazenados e recuperados de forma eficiente em coleções baseadas em hash.
  • Em nosso exemplo, implementamos e substituímos manualmente o método equals() para comparar os campos de dois objetos Profile quanto à igualdade, e o método hashCode() para gerar um código hash baseado nos campos.
  • Usamos o método Objects.equals() da classe java.util.Objects para comparar os campos quanto à igualdade e o método Objects.hash() para gerar o código hash.

Sem usar o recurso de anotações EqualAndHashCode

  • A anotação @EqualsAndHashCode gera métodos equals() e hashCode() com base nos campos da classe.
  • Com esta anotação, Lombok gera métodos equals() e hashCode() usando todos os campos da classe.
  • Isso elimina a necessidade de implementação manual desses métodos, reduzindo o código clichê e melhorando a capacidade de manutenção do código.

3. Anotações de dados
Sem usar anotações @data, temos que implementar manualmente os recursos getters, setters e construtores em nosso código.

  • Sem usar o recurso de anotações de dados

  • A anotação @data é um atalho conveniente que agrupa @Getter, @setter, @NoArgsConstructor, @AllArgsConstructor, @RequiredArgsConstructor, @ToString, @EqualsAndHashCode e muitas outras anotações.

  • Usando @data, o Lombok gera automaticamente esses métodos para nós com base nos campos declarados na classe. Isso reduz significativamente a quantidade de código padrão que precisamos escrever e manter, tornando nosso código mais conciso e legível.

  1. BuilderPattern
  • Voltando ao nosso exemplo de Perfil, a construção de uma nova instância requer o emprego de um construtor com contagem potencialmente numerosa de quatro argumentos, uma tarefa que se torna difícil à medida que introduzimos atributos adicionais à classe.
  • Felizmente, Lombok fornece uma solução robusta com seu recurso @builder, que facilita a utilização do Builder Pattern para criar novas instâncias. Vamos integrar esse recurso em nossa classe Profile.

pacote org.example.dataobjects;

importar lombok.*;

@Getter
@normatizador
@NoArgsConstructor
@AllArgsConstructor
@RequiredArgsConstructor
@ToString(excluir = {"designação"})
@EqualsAndHashCode
@construtor
@dados
Perfil de classe pública {
string privada primeiroNome;
string privada sobrenome;
designação de string privada;
idade interna privada;

public static void main(String[] args) {

// Criando uma instância de Profile usando o construtor
Perfil de perfil = Profile.builder()
.firstName("Parte")
.lastName("Kathrotiya")
.designation("Engenheiro de automação de controle de qualidade")
.idade(23)
.construir();
}
}

Delombok

  • Delombok é uma ferramenta fornecida pelo Projeto Lombok que reverte os efeitos das anotações do Lombok, essencialmente “deselombokificando” seu código. Ele permite que você converta o código-fonte Java contendo anotações Lombok em código Java simples, expandindo as anotações e substituindo-as pelo código padrão correspondente que elas gerariam.
  • O objetivo principal do Delombok é facilitar a compatibilidade e interoperabilidade com ambientes ou ferramentas que não suportam anotações do Lombok diretamente. Por exemplo, se você precisar compartilhar seu código com desenvolvedores que não possuem o Lombok instalado em seu ambiente de desenvolvimento, ou se quiser analisar ou refatorar o código anotado do Lombok usando ferramentas que não entendem as anotações do Lombok, você pode usar o Delombok para converter o código em um formato que seja compreensível e utilizável nesses contextos.
  • Delombok pode ser invocado através da linha de comando ou integrado em ferramentas de construção como Maven ou Gradle. Quando você executa o Delombok em seu código-fonte, ele processa os arquivos Java, expande as anotações do Lombok e gera novos arquivos Java sem nenhuma anotação do Lombok. O código resultante é funcionalmente equivalente ao código original, mas sem qualquer dependência do Lombok.
  • No geral, o Delombok é uma ferramenta útil fornecida pelo Projeto Lombok que aprimora a interoperabilidade e a capacidade de manutenção de bases de código usando anotações do Lombok, permitindo que os desenvolvedores aproveitem os benefícios do Lombok e ao mesmo tempo garantam a compatibilidade com uma ampla gama de ambientes e ferramentas de desenvolvimento.

Conclusão

Embora esta postagem destaque os recursos que considero mais benéficos, o Lombok oferece uma infinidade de funcionalidades e personalizações adicionais.
A documentação do Lombok é um recurso inestimável, fornecendo explicações detalhadas e exemplos para cada anotação. Se você está intrigado com esta postagem, recomendo que você se aprofunde na documentação do Lombok para descobrir ainda mais possibilidades.
Além disso, o site do projeto oferece guias completos sobre a integração do Lombok em vários ambientes de programação. Esteja você usando Eclipse, NetBeans, IntelliJ ou outros, tenha certeza de que o Lombok se integra perfeitamente ao seu fluxo de trabalho. Como alguém que alterna frequentemente entre IDEs, posso atestar a versatilidade e confiabilidade do Lombok em todas as plataformas.
No geral, o Projeto Lombok oferece um conjunto abrangente de recursos que agilizam o desenvolvimento Java, reduzem a verbosidade do código e promovem as melhores práticas.
O Projeto Lombok oferece um conjunto abrangente de recursos que agilizam os testes Java, reduzem a verbosidade do código e promovem as melhores práticas. Ao incorporar construtores Lombok e construtores Lombok, os testadores podem simplificar ainda mais seu código e melhorar a capacidade de manutenção.

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/jignict_technologies/lombok-unleashed-elevating-java-efficiency-with-getters-setters-constructors-builders-and-more-mfm?1 Se houver alguma violação, por favor entre em contato com study_golang@163 .comdelete
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3