Lombok: menos código repetitivo e mais foco nas regras de negócio

Aprenda a usar o Project Lombok para eliminar código repetitivo em Java: getters, setters, construtores, builders e muito mais com anotações simples.

O que é? Qual o uso?

A ideia deste projeto é reduzir a quantidade de código repetitivo que escrevemos no Java. Métodos de leitura e escrita de campos (getters/setters), construtores com ou sem argumentos, tudo se resume a anotações com o Lombok! Poderia ficar melhor? Sim, ele consegue criar até classes de Builders com a mesma facilidade.

Exemplos de uso

Adicione a dependência no build.gradle:

1
2
3
4
dependencies {
    compileOnly 'org.projectlombok:lombok'
    annotationProcessor 'org.projectlombok:lombok'
}

@Data — gera getters, setters, toString, equals e hashCode

1
2
3
4
5
6
7
8
import lombok.Data;

@Data
public class Usuario {
    private Long id;
    private String nome;
    private String email;
}

O código acima equivale a aproximadamente 50 linhas de getters, setters, toString, equals e hashCode.

@AllArgsConstructor e @NoArgsConstructor

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;
import lombok.Data;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Produto {
    private Long id;
    private String nome;
    private BigDecimal preco;
}

@Builder — padrão Builder automaticamente

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
import lombok.Builder;
import lombok.Data;

@Data
@Builder
public class Pedido {
    private Long id;
    private String cliente;
    private List<Item> itens;
}

// Uso:
Pedido pedido = Pedido.builder()
    .cliente("João")
    .itens(List.of(item1, item2))
    .build();

Dá uma olhada nesse vídeo pra conferir:

Vídeos

O Felipe Públio tem um material interessante sobre o tema:

Mais informações:

comments powered by Disqus
Criado com Hugo
Tema Stack desenvolvido por Jimmy