Sobes.tech
Junior

Čo je knižnica Lombok?

sobes.tech AI

Odpoveď od AI

Lombok je knižnica Java, ktorá pomocou anotácií umožňuje automaticky generovať šablónový kód (gettery, settery, equals, hashCode, toString, konštruktory atď.), čím znižuje slovnú náročnosť kódu a robí ho prehľadnejším.

Hlavné anotácie:

  • @Getter / @Setter: generujú gettery a settery.
  • @ToString: generuje metódu toString.
  • @EqualsAndHashCode: generujú metódy equals a hashCode.
  • @NoArgsConstructor / @RequiredArgsConstructor / @AllArgsConstructor: generujú rôzne typy konštruktorov.
  • @Data: kombinuje @Getter, @Setter, @RequiredArgsConstructor, @ToString, @EqualsAndHashCode.
  • @Builder: poskytuje plynulé API na vytváranie objektov.

Príklad použitia:

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

// Anotácia @Data generuje gettery, settery,
// konštruktor s povinnými argumentmi, ako aj metódy toString, equals a hashCode.
@Data
// Anotácia @Builder umožňuje používať vzor Builder na vytváranie objektov.
@Builder
public class User {

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

    // Lombok automaticky vygeneruje:
    // getId(), setId(Long id)
    // getName(), setName(String name)
    // getAge(), setAge(int age)
    // konštruktor(Long id, String name, int age) - ak sú všetky polia final alebo ak sa používa @RequiredArgsConstructor s finalnými poľami
    // toString()
    // equals()
    // hashCode()

    // Príklad použitia Builder:
    // User user = User.builder()
    //                .id(1L)
    //                .name("Alice")
    //                .age(30)
    //                .build();
}

Výhody:

  • Skrátenie kódu.
  • Zlepšenie čitateľnosti kódu.
  • Zníženie pravdepodobnosti chýb pri písaní šablónového kódu.

Nevýhody:

  • Vyžaduje integráciu s IDE.
  • Môže sťažiť ladenie, pretože generovaný kód nie je priamo viditeľný.