Principais anotações do Lombok.
Neste artigo você verá as principais anotações da biblioteca Lombok do Java.
O que é o Lombok?
O Lombok, nada mais que é uma biblioteca Java que tem o intuito de diminuir o código boilerplate dos projetos em Java e assim aumentar a produtividade do desenvolvedor. Atráves de uma simples anotação ele automatiza a criação de partes de códigos como construtores, getters e setters.
Requisitos para utilização do Lombok:
- Java 11+;
Abaixo descrevo as principais e mais comuns anotações utilizadas do Lombok.
@Getter
Essa anotação serve para gerar os metórdos getters de nossa classe ou de determinado atributo da classe, dependendo da posição onde a anotação é colocada, se no inicio da classe ou acima do atributo da classe.
@Setter
Essa anotação serve para gerar os metórdos setters de nossa classe ou de determinado atributo da classe, dependendo da posição onde a anotação é colocada, se no inicio da classe ou acima do atributo da classe.
@AllArgsConstructor
Essa anotação serve para gerar um construtor da classe contendo todos os atributos da classe como argumento.
@NoArgsConstructor
Essa anotação serve para gerar um construtor vazio da classe, ou seja será gerado um construtor sem argumentos.
@EqualsAndHashCode
Essa anotação serve para gerar os metódos @Equals
e HashCode
de uma classe.
@ToString
Essa anotação serve para gerar o metódo toString
de uma classe com todos os seus atributos.
@Data
A anotação @Data
, ela engloba as anotações @Getter
, @Setter
, @EqualsAndHashCode
e @ToString
em uma única anotação.
Abaixo mostro exemplos de como seria uma classe sem o uso de Lombok e a mesma classe usando as anotações do Lombok.
Essa seria uma classe sem usar o Lombok:
public class Pessoa {
private String nome;
private String sobreNome;
private int idade;
public Pessoa() {
}
public Pessoa(String nome, String sobreNome, int idade) {
this.nome = nome;
this.sobreNome = sobreNome;
this.idade = idade;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getSobreNome() {
return sobreNome;
}
public void setSobreNome(String sobreNome) {
this.sobreNome = sobreNome;
}
public int getIdade() {
return idade;
}
public void setIdade(int idade) {
this.idade = idade;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Pessoa pessoa = (Pessoa) o;
if (idade != pessoa.idade) return false;
if (!nome.equals(pessoa.nome)) return false;
return sobreNome.equals(pessoa.sobreNome);
}
@Override
public int hashCode() {
int result = nome.hashCode();
result = 31 * result + sobreNome.hashCode();
result = 31 * result + idade;
return result;
}
@Override
public String toString() {
return "Pessoa{" +
"nome='" + nome + '\'' +
", sobreNome='" + sobreNome + '\'' +
", idade=" + idade +
'}';
}
}
Agora mostro a mesma classe acima utilizando o Lombok, veja como dimunui o código:
import lombok.Getter;
import lombok.Setter;
import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;
import lombok.EqualsAndHashCode;
import lombok.ToString;
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode
@ToString
public class Pessoa {
private String nome;
private String sobreNome;
private int idade;
}
Agora só mais um exemplo da mesma classe utilizando a anotação @Data
do Lombok:
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Pessoa {
private String nome;
private String sobreNome;
private int idade;
}
Este foi um breve resumo sobre as principais anotações da biblioteca Lombok, vou deixar abaixo o link da documentação e de outros artigos sobre está biblioteca do Java.
Referências: