Taka śmieszna biblioteka do zwalczania getterozy i setterozy.
Lombok autogeneruje nie tylko gettery i settery, ale także konstruktory, buildery, hashcode, equalsa, tostringa i inne rzeczy.
Trzeba tylko jasno powiedzieć, że Lombok żadnej getterozy i setterozy nie zwalcza. Wręcz przeciwnie - on dopiero prawdziwą potrafi zrobić. Bo jeszcze łatwiej niż normalnie te bzdury pisać.
Lombok =~= bieda Kotlin z bardzo brzydką składnią. Nie wiem, dlaczego ktoś miałby tego używać, ale niestety jest używany dość mocno. Szczególnie w korpo, ale nie tylko.
IMHO to proba leczenie raka innym rakiem
Narzędzie jak każde inne, nie ma co hejtować, że jest takie a nie inne. To programiści robią bałagan w kodzie a nie narzędzia ;)
A co do samego lomboka to trzeba używać z głową jak wszystkiego. Ja używam do generowania getterów, setterów(jak potrzebuję), builderów, konstruktorów i sprawdza się świetnie. Co do innych rzeczy to trzeba podchodzić ostrożnie. Myślę, że każdy programista po kilku miesiącach używania lomboka w swoim projekcie, będzie wiedział do czego może go używać a do czego nie - oczywiście jak będzie robić to świadomie.
Według mnie jeśli klasa ma same pola plus adnotacje loboka to jeszcze można się połapać. Gorzej jak nie dość, że ma adnotacje lombokowe, inne adnotacje plus sama w sobie jest długa i zawiła. Wtedy zaczynają się problemy.
Lombok = rak, bo robi cuda z bajtkodem i wymaga pluginów do IDE żeby w ogóle cokolwiek działało.
Ale są lepsze alternatywy, np. Immutables. Idea podobna, tylko że generuje ci to faktyczne klasy jak kompilujesz. Przy czym w zasadzie poza jakimiś DTO mapowanymi z/do jsona to raczej mało użyteczne, bo gdzie ci jest taka klasa potrzebna? ;]
Jak ktoś się bardzo uprze, żeby nie pisać w kotlinie to Immutables i Lombok mają jeden, jedyny naprawdę przydatny feature:
@Withers (czy też .copy
). Reszty mi jakoś w javie nie brakuje bardzo.
(data classes w kotlinie oczywiście są ładniejsze).
Bida z nędzą. Taki zajebisty, a na Androidzie się krzaczy i nie dorobił się ciągle żadnego @Parcelable
, a tylko tu bym widział zastosowanie i ułatwienie.
(tak jest rozszerzenie, ale nie działa)