Dlaczego Lombok to rewolucja w pisaniu kodu Java
Każdy Java developer zna ten problem – chcesz stworzyć prostą klasę z kilkoma polami, a musisz napisać dziesiątki linii kodu. Gettery, settery, konstruktory, equals(), hashCode(), toString() – wszystko to zabira czas i zaśmieca kod. Lombok rozwiązuje ten problem raz na zawsze.
Co się nauczysz:
- Jak skonfigurować Lombok w projekcie Maven/Gradle
- Podstawowe adnotacje: @Getter, @Setter, @ToString
- Zaawansowane adnotacje: @Data, @Builder, @AllArgsConstructor
- Jak Lombok działa pod maską
- Najczęstsze pułapki i jak ich unikać
Konfiguracja Lombok – pierwsze kroki
Instalacja Lombok to dosłownie jedna linia w Maven:
org.projectlombok lombok 1.16.18 provided
Dla Gradle:
compileOnly 'org.projectlombok:lombok:1.16.18'
Podstawowe adnotacje – @Getter i @Setter
Zamiast pisać dziesiątki linii getterów i setterów:
// Bez Lombok - 30+ linii kodu public class User { private String name; private String email; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
Wystarczą dwie adnotacje:
// Z Lombok - 8 linii kodu @Getter @Setter public class User { private String name; private String email; private int age; }
@Data – szwajcarski scyzoryk Lombok
Najczęściej używana adnotacja @Data łączy w sobie:
- @Getter i @Setter dla wszystkich pól
- @ToString
- @EqualsAndHashCode
- @RequiredArgsConstructor
@Data public class Product { private final Long id; // final = będzie w konstruktorze private String name; private BigDecimal price; private boolean available; }
@Builder – eleganckie tworzenie obiektów
Pattern Builder bez pisania dziesiątek linii kodu:
@Builder @Data public class Order { private String customerName; private String product; private int quantity; private BigDecimal totalPrice; } // Użycie: Order order = Order.builder() .customerName("Jan Kowalski") .product("Laptop") .quantity(1) .totalPrice(new BigDecimal("2500.00")) .build();
Jak Lombok działa pod maską
Lombok to procesor adnotacji (Annotation Processor) który:
- Podczas kompilacji analizuje twój kod źródłowy
- Generuje bytecode z dodatkowymi metodami
- Nie wpływa na runtime – zero overhead wydajnościowego
Najczęstsze pułapki początkujących
Konfiguracja IDE
Aby IDE rozpoznawało metody generowane przez Lombok:
Eclipse: Pobierz lombok.jar i uruchom: java -jar lombok.jar
Nie. Lombok działa tylko podczas kompilacji. W runtime masz normalny bytecode Java, jakby metody napisał programista ręcznie.
Tak. Lombok jest stabilny, używany przez tysiące projektów. Jednak niektóre zespoły preferują jawny kod dla lepszej czytelności.
Możesz napisać własną implementację – Lombok nie wygeneruje metody jeśli już istnieje w kodzie.
Potrzebujesz odpowiedniego pluginu. Dostępne dla IntelliJ IDEA, Eclipse, NetBeans i VS Code.
Normalnie. Debugger widzi wygenerowane metody. Możesz stawiać breakpointy w wygenerowanych getterach/setterach.
🚀 Zadanie dla Ciebie
Stwórz klasę Employee z polami: id, firstName, lastName, email, salary. Użyj @Data i @Builder. Napisz metodę main() która utworzy 3 pracowników używając buildera i wyświetli ich dane.
Przydatne zasoby:
Co myślisz o Lombok? Używasz tej biblioteki w swoich projektach, czy wolisz pisać kod ręcznie? Podziel się swoim doświadczeniem w komentarzach!