Sobes.tech
Junior

Ce este biblioteca Lombok?

sobes.tech AI

Răspuns de la AI

Lombok este o bibliotecă Java care, prin utilizarea adnotărilor, permite generarea automată a codului tipar (getters, setters, equals, hashCode, toString, constructori etc.), reducând verbositatea codului și făcându-l mai ușor de citit.

Principalele adnotări:

  • @Getter / @Setter: generează getters și setters.
  • @ToString: generează metoda toString.
  • @EqualsAndHashCode: generează metodele equals și hashCode.
  • @NoArgsConstructor / @RequiredArgsConstructor / @AllArgsConstructor: generează diferite tipuri de constructori.
  • @Data: combină @Getter, @Setter, @RequiredArgsConstructor, @ToString, @EqualsAndHashCode.
  • @Builder: oferă o API fluent pentru crearea obiectelor.

Exemplu de utilizare:

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

// Anotarea @Data generează getters, setters,
// constructor cu argumente obligatorii, precum și metodele toString, equals și hashCode.
@Data
// Anotarea @Builder permite utilizarea pattern-ului Builder pentru crearea obiectelor.
@Builder
public class User {

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

    // Lombok va genera automat:
    // getId(), setId(Long id)
    // getName(), setName(String name)
    // getAge(), setAge(int age)
    // constructor(Long id, String name, int age) - dacă toate câmpurile sunt finale sau dacă se folosește @RequiredArgsConstructor cu câmpuri finale
    // toString()
    // equals()
    // hashCode()

    // Exemplu de utilizare a Builder:
    // User user = User.builder()
    //                .id(1L)
    //                .name("Alice")
    //                .age(30)
    //                .build();
}

Avantaje:

  • Reducerea volumului de cod.
  • Îmbunătățirea lizibilității codului.
  • Reducerea probabilității de erori în timpul scrierii codului tipar.

Dezavantaje:

  • Necesită integrare cu IDE.
  • Poate complica depanarea, deoarece codul generat nu este vizibil direct.