Java 14
W czasie moich aktywności online dotyczących tłumaczenia rekordów parę osób rzuciło podkręconą piłkę “no a Lombok?” W szczególności pytanie przybiera formę “skoro rekordy są immutable, to czym się różnią od @Value
z Lomboka?”
Na okoliczność wydania Javy 14 widziałem parę dyskusji przebiegających mniej więcej takim stylu: - O, rekordy w Javie, fajnie, w końcu mamy automatycznie generowane settery i gettery! - Nie, rekordy w Javie to POJOs bez setterów… - A, okay… Fajnie, w końcu mamy w Javie generowane Beany, ale bez setterów!
W poprzednim wpisie było o tym, jak utworzyć rekord od Javy 14 i po co w ogóle rekordy są. W tym wpisie na tapet bierzemy ograniczenia i możliwości rekordów.
Java 14 przyniosła nam rekordy (ang. records) jako preview feature. Było (jest?) przy tym sporo zamieszania, deklaracji i ciężkich obelg miotanych w kierunku wrażych bibliotek i wtyczek do IDE. Pozwólcie mi dorzucić moje trzy grosze.
W pogoni za nietrywialnymi przykładami do zilustrowania zastosowań JEPa 305 niektóre osoby mogły zapędzić się za daleko. W szczególności w trudniejszy teren metody equals()
obecnej w każdym obiekcie w Javie.
Java 14 zawiera wiele nowości. Jedną z nich (jako preview feature) jest dopasowywanie wzorców z instanceof
(ang. pattern matching with instanceof
). Ludzie programujący w językach wspierających paradygmat funkcyjny, np. w Scali, w Kotlinie (o Haskellu nie wspominając), w pierwszym odruchu widzą oczyma duszy swojej od razu piękne wyrażenie match
/ when
, wyłuskiwanie danych, strażniki, dekonstruktory w obiektach stowarzyszonych itd.
Java 14 przyniosła nam Rekordy (poza wieloma innymi ciekawymi rzeczami). Dla wielu osób to powód, by twierdzić “koniec z generowaniem getterów dla JavaBeans” albo nawet “Lombok umarł”. Czy rzeczywiście tak jest? Co można zrobić z rekordami, czego nie można? Co z refleksją i serializacją?
Prezentacja nie została jeszcze nagrana po polsku (ma się to zmienić w czerwcu 2020), pojawiła się m.in. na AllTheTalks.online, CodeCamp Romania, JPoint.
W mrocznych czasach musieliśmy czekać 3-4 lata, żeby zobaczyć nową wersję Javy. Teraz mamy dwa duże wydania każdego roku! Nowości z Javy możemy wykorzystać przed wydaniem kolejnego LTSa.
Do rzeczy… Masz ochotę zobaczyć, co się stało w Javie 14?
Wyrażenia switch osiadły na dobre?
Czy teraz już nie będzie NPE?
Rekordy?
Pattern matching?
Bloki tekstowe?
Jeśli wydają Ci się interesujące, dajmy razem nura w te nowości!
Prezentacja pojawiła się w tej formie (Deep Dive) na WrocławJUG i WarszawaJUG.