W styczniu, w artykule
Java 14 już na horyzoncie,
opisaliśmy kilka najważniejszych zmian, jakie zostaną wprowadzone w Javie 14. Obiecaliśmy wtedy powrót do tematu
i właśnie teraz, kilka dni przed pojawieniem się wersji GA, przyjrzymy się kolejnym nowościom.
Java 14 - 17 Marca 2020
- Narzędzie do pakowania (Packaging tool)
Funkcjonalność jest udostępniona w ramach inkubatora, więc może zawierać jeszcze
błędy, ale mimo wszystko warto zwrócić na nią uwagę.
Wreszcie programiści Javy postanowili ułatwić życie swoim użytkownikom
i wprowadzili narzędzie przygotowujące aplikację Java w postaci instalowanego pakietu.
Narzędzie nazywa się jpackage i pakuje aplikację do pakietu dedykowanego konkretnej platformie, w tym:
- MSI i EXE w systemie Windows
- DEB i RPM w systemie Linux
- PKG i DMG na macOS
Użycie narzędzia nie jest skomplikowane. Wystarczy uruchomić komendę z odpowiednimi parametrami:
jpackage --name myapp --input lib --main-jar main.jar --main-class myapp.Main
Narzędzie posiada wiele dodatkowych opcji, które warto przeanalizować, jeśli już dziś zależy nam na
testowaniu go w boju. Link do dokumentacji znajduje się na dole strony.
- Rekordy
W trakcie pisania kodu zdarzają się fragmenty, które są i oczywiste i często powtarzane (tzw. boilerplate).
Pisanie wiele razy tego samego jest uciążliwe, dlatego
warto stosować biblioteki takie jak Lombok. Niemniej wadą Lomboka jest to, że dołączamy go do Javy z zewnątrz.
Warto byłoby mieć rozwiązanie wbudowane od razu w kod samego języka.
Programiści Javy są tego świadomi i przynajmniej częściowo starają się rozwiązać ten problem.
Efektem ich działań jest wprowadzenie nowego bytu w postaci rekordu.
Rekordy na razie są udostępnione tylko w trybie preview, ale już wiadomo, że warto się im przyjrzeć,
oczekując ze zniecierpliwieniem wypuszczenia finalnej wersji. Nie jest to co prawda coś, co całkiem zastąpi Lomboka,
jednak z pewnością wpłynie na ograniczenie liczby jego adnotacji.
Od teraz metody takie jak gettery, hashCode, equals i toString mogą być wygenerowane
automatycznie. Wystarczy, że deklarując nowy byt, określimy go jako record:
Podobnie będzie z przypisaniem parametrów konstruktora do pól w obiekcie (też zostaną wygenerowane).
Appa Notka.
Przypominamy, że jest to funkcjonalność eksperymentalna i aby z niej skorzystać musimy kompilować nasze źródła z opcją --enable-preview.
Jeśli używamy Eclipse'a możemy to ustawić wchodząc do menu Window > Preferences > Java > Compiler. Tam zaznaczamy opcję "Enable preview features".
-
JFR - Java Flight Recorder
JFR zbiera informacje diagnostyczne i profiluje dane aplikacji Java.
Obecnie został rozszerzony o funkcję asynchronicznego subskrybowania zdarzeń.
Użytkownicy mogą odczytywać dane nagrania bezpośrednio lub przesyłać strumieniowo z repozytorium dysku bez zrzucania pliku nagrania.
Przypominamy, że Java 14 uzyska status
General Availability już 17 marca.
Nie ma w niej zmian na miarę Javy 8 (to zresztą naturalne przy obecnym modelu udostępniania nowych wersji), ale jednak kilka smaczków zostało wprowadzonych.
Nam podoba się szczególnie nowy koncept rekordów oraz wyrażenia
switch,
które wreszcie przestały być funkcjonalnością eksperymentalną (pisaliśmy o tym w styczniu, w pierwszym artykule o Javie 14).
Autor: Jarek Klimas
Data: 10 marca 2020
Labele:Backend, Poziom średniozaawansowany, Java
Linki:
https://openjdk.java.net/jeps/343
https://openjdk.java.net/jeps/349
https://openjdk.java.net/jeps/359
Masz pytanie odnośnie zagadnienia omawianego w artykule?
Coś, co napisaliśmy, nie zaspokoiło Twojego głodu wiedzy?
Daj nam znać co myślisz i skomentuj artykuł na facebooku!