Java

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:

 

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *