Sobes.tech
Junior

O que é a biblioteca Lombok?

sobes.tech IA

Resposta da IA

Lombok é uma biblioteca Java que, através de anotações, permite gerar automaticamente código padrão (getters, setters, equals, hashCode, toString, construtores, etc.), reduzindo a verbosidade do código e tornando-o mais legível.

Anotações principais:

  • @Getter / @Setter: geram getters e setters.
  • @ToString: gera o método toString.
  • @EqualsAndHashCode: gera os métodos equals e hashCode.
  • @NoArgsConstructor / @RequiredArgsConstructor / @AllArgsConstructor: geram diferentes tipos de construtores.
  • @Data: combina @Getter, @Setter, @RequiredArgsConstructor, @ToString, @EqualsAndHashCode.
  • @Builder: fornece uma API fluida para criar objetos.

Exemplo de uso:

// Importações Lombok
import lombok.Data;
import lombok.Builder;

// A anotação @Data gera getters, setters,
// construtor com argumentos obrigatórios, além de métodos toString, equals e hashCode.
@Data
// A anotação @Builder permite usar o padrão Builder para criar objetos.
@Builder
public class User {

    private Long id;
    private String name;
    private int age;

    // Lombok irá gerar automaticamente:
    // getId(), setId(Long id)
    // getName(), setName(String name)
    // getAge(), setAge(int age)
    // construtor(Long id, String name, int age) - se todos os campos forem finais, ou se usar @RequiredArgsConstructor com campos finais
    // toString()
    // equals()
    // hashCode()

    // Exemplo de uso do Builder:
    // User user = User.builder()
    //                .id(1L)
    //                .name("Alice")
    //                .age(30)
    //                .build();
}

Vantagens:

  • Redução do volume de código.
  • Melhoria da legibilidade do código.
  • Diminuição da probabilidade de erros ao escrever código padrão.

Desvantagens:

  • Requer integração com IDE.
  • Pode dificultar a depuração, pois o código gerado não é visível diretamente.