Sobes.tech
Junior

Qu'est-ce que la bibliothèque Lombok ?

sobes.tech IA

Réponse de l'IA

Lombok est une bibliothèque Java qui, grâce à des annotations, permet de générer automatiquement du code modèle (getters, setters, equals, hashCode, toString, constructeurs, etc.), réduisant la verbosité du code et le rendant plus lisible.

Annotations principales :

  • @Getter / @Setter : génèrent des getters et setters.
  • @ToString : génère la méthode toString.
  • @EqualsAndHashCode : génère les méthodes equals et hashCode.
  • @NoArgsConstructor / @RequiredArgsConstructor / @AllArgsConstructor : génèrent différents types de constructeurs.
  • @Data : combine @Getter, @Setter, @RequiredArgsConstructor, @ToString, @EqualsAndHashCode.
  • @Builder : fournit une API fluide pour créer des objets.

Exemple d'utilisation :

// Importations Lombok
import lombok.Data;
import lombok.Builder;

// L'annotation @Data génère getters, setters,
// constructeur avec arguments obligatoires, ainsi que les méthodes toString, equals et hashCode.
@Data
// L'annotation @Builder permet d'utiliser le pattern Builder pour créer des objets.
@Builder
public class User {

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

    // Lombok générera automatiquement :
    // getId(), setId(Long id)
    // getName(), setName(String name)
    // getAge(), setAge(int age)
    // constructeur(Long id, String name, int age) - si tous les champs sont final, ou si @RequiredArgsConstructor est utilisé avec des champs final
    // toString()
    // equals()
    // hashCode()

    // Exemple d'utilisation de Builder :
    // User user = User.builder()
    //                .id(1L)
    //                .name("Alice")
    //                .age(30)
    //                .build();
}

Avantages :

  • Réduction de la taille du code.
  • Amélioration de la lisibilité du code.
  • Réduction de la probabilité d'erreurs lors de l'écriture du code modèle.

Inconvénients :

  • Nécessite une intégration avec l'IDE.
  • Peut compliquer le débogage, car le code généré n'est pas visible directement.