Escolar Documentos
Profissional Documentos
Cultura Documentos
@EqualsAndHashCode
A annotation @EqualsAndHashCode é uma das annotations do lombok mais úteis para simplificar a
implementação dos métodos equals() e hashCode() em uma classe Java. Em vez de escrever
manualmente esses métodos, podemos simplesmente adicionar a annotation @EqualsAndHashCode à
nossa classe, e o Lombok se encarrega de gerar os métodos para nós.
Para usar a annotation @EqualsAndHashCode, basta adicioná-la à sua classe. Por exemplo, suponha que
você tenha a seguinte classe Pessoa:
import lombok.EqualsAndHashCode;
@EqualsAndHashCode
public class Pessoa {
Observe que a annotation @EqualsAndHashCode também tem parâmetros opcionais que podemos usar
para personalizar a geração dos métodos equals() e hashCode(). Por exemplo, podemos usar o parâmetro
exclude para excluir campos específicos da comparação de igualdade ou hashCode. Ou podemos usar o
parâmetro of para incluir apenas alguns campos na comparação de igualdade ou hashCode.
Em resumo, a annotation @EqualsAndHashCode do Lombok é uma ferramenta útil para simplificar a
implementação dos métodos equals() e hashCode() em uma classe Java. Com essa annotation, podemos
deixar o Lombok se encarregar de gerar os métodos para nós, tornando nossa vida como
desenvolvedores muito mais fácil e produtiva.
@Data
A annotation @Data é uma das mais úteis e populares annotations do Lombok. Ela é usada para gerar
automaticamente os métodos getters, setters, equals(), hashCode() e toString() de uma classe Java.
A annotation @Data substitui a necessidade de escrever manualmente esses métodos, o que reduz muito
a quantidade de código que precisamos escrever. Em vez de criar os métodos manualmente, podemos
simplesmente adicionar a annotation @Data à nossa classe e o Lombok irá gerar esses métodos
automaticamente.
Se observar bem, com essa annotations eu não preciso utilizar as outras annotations como @Getter,
@Setter e @ToString.
Vamos considerar um exemplo de uso da annotation @Data em uma classe Pessoa:
import lombok.Data;
@Data
public class Pessoa {
Observe que a annotation @Data é uma combinação de outras annotations do Lombok, incluindo
@Getter, @Setter, @EqualsAndHashCode e @ToString. Isso significa que, se você precisar
personalizar a geração de algum desses métodos, pode usar as annotations individuais em vez
da @Data.
Em resumo, a annotation @Data do Lombok é uma ferramenta muito útil para reduzir a
quantidade de código que precisamos escrever em nossas classes Java. Com essa annotation,
podemos deixar o Lombok gerar automaticamente os métodos getters, setters, equals(),
hashCode() e toString() para nós, o que nos ajuda a economizar tempo e aumentar a
produtividade.
@Builder
A annotation @Builder é uma das mais úteis annotations do Lombok. Ela é usada para gerar
automaticamente um padrão de construção de objetos usando o padrão Builder.
Essa annotation é uma alternativa ao construtor padrão e evita a necessidade de escrever
construtores complexos, especialmente em classes com muitos atributos.
@Builder
public class Pessoa {
O método builder() retorna um objeto PessoaBuilder, que é usado para configurar os valores dos
atributos da classe Pessoa. O método build() cria e retorna uma instância de Pessoa com os
valores configurados.
Observe que, com a annotation @Builder, é possível criar objetos Pessoa com valores default
(usando @Builder.Default) e valores opcionais. Os valores default são aqueles que são
atribuídos automaticamente pelo Lombok, enquanto os valores opcionais podem ser
especificados pelo usuário.
Além disso, a annotation @Builder permite que sejam adicionados métodos personalizados ao
padrão Builder.
Em resumo, a annotation @Builder do Lombok é uma ferramenta muito útil para reduzir a
quantidade de código que precisamos escrever em nossas classes Java. Com essa annotation,
podemos deixar o Lombok gerar automaticamente um padrão de construção de objetos usando o
padrão Builder para nós, o que nos ajuda a economizar tempo e aumentar a produtividade.
@SneakyThrows
A anotação @SneakyThrows é uma das annotations do Lombok, que podemos considerar no
grupo de anotações avançadas, ela pode ser usada para lidar com exceções de forma mais
elegante em Java.
Com a anotação @SneakyThrows, podemos converter uma exceção verificada em uma exceção
não verificada. Dessa forma, podemos lidar com a exceção sem ter que escrever um bloco try-
catch, o que torna nosso código mais limpo e legível.
Para usar a anotação @SneakyThrows, basta anotar um método ou um bloco de código que
possa lançar uma exceção verificada.
Por exemplo, suponha que você tenha o seguinte método que lança uma exceção verificada:
public void readFromFile(String fileName) throws IOException {
try (BufferedReader reader = new BufferedReader(new FileReader(fileName)))
{
String line = reader.readLine(); System.out.println(line);
}
}
Bônus
Essa você já deve conhecer, mas é bom lembrar, ainda temos uma Annotation do Lombok muito
útil que foi feito para logs, trata-se da @Slf4j
Com a @Slf4j, você pode adicionar automaticamente logging ao seu código, veja o exemplo:
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
@Slf4j
public class MyFileReader {
Vimos que utilizar as annotations do Lombok é simples e muito útil em qualquer contexto de
projeto java, pois a sua utilização só agrega o dia a dia da equipe de desenvolvimento, além de
ajudar o código a ficar bem organizado e de fácil entendimento.
Otimização do processo de desenvolvimento é sempre bem vindo, temos também um tutorial que
ensina como configurar o Lombok em conjunto com o MapStruct em um projeto Spring Boot, o
uso dessas duas ferramentas traz um retorno muito bom em termos de produtividade, confira o
tutorial aqui.
Links
Se você não usa o Lombok ou tem dificuldade de integra-lo com a sua IDE acesse aqui
Para diminuir ainda mais o código boilerplate veja esse post
Site oficial do projeto Lombok