A Java legújabb verziója néhány hasznos szintaxist tartalmaz a Records számára, többek között további fejlesztéseket is.
A Java programozás világa folyamatosan fejlődik, és megköveteli, hogy naprakész maradjon, hogy kimagasló legyen a mesterségében.
A Java 21 izgalmas fejlesztések hullámát hozza magával, amelyek forradalmasítják a párhuzamosság, a gyűjtési műveletek és a rekordokkal való munka megközelítését.
A virtuális szálak bemutatása
A szerveralkalmazások méretezése mindig is kihívásokat jelentett, a szálak gyakran szűk keresztmetszetekké váltak. A szálak korlátozott száma, az eseményekre való gyakori várakozással vagy a feloldás zárolásával kombinálva akadályozza az általános teljesítményt.
A múltban a probléma megoldása olyan konstrukciók használatát jelentette, mint a CompletableFuture vagy reaktív keretrendszerek, ami bonyolult kódot eredményezett, amelyet nehéz volt megérteni és karbantartani.
Szerencsére a Java 19 bevezette a virtuális szálakat előnézeti funkcióként, amelyet a Java 21 finomított és megszilárdított a JDK Enhancement Proposal 444 segítségével.
A virtuális szálak nagyon ígéretes alternatívát kínálnak, lehetővé téve a skálázhatósági kihívások hatékonyabb kezelését. Ez a kiszolgálóalkalmazások jobb teljesítményéhez és válaszkészségéhez vezet.
A szekvenciális gyűjtemények jobban használhatók
Hagyományosan, linkelt listák használatával a Java programozásban elég bő kódot igényelt. Például az utolsó elem lekéréséhez ezt a nehézkes megközelítést kell használnia:
var utolsó = list.get (lista.size() - 1);
A Java 21 azonban egy tömör és elegáns alternatívát mutat be:
var last = list.getLast();
Hasonlóképpen, a LinkedHashSet első elemének eléréséhez körforgalomra van szükség:
var first = linkedHashSet.iterator().next();
A Java 21-gyel azonban ez a feladat sokkal egyszerűbbé válik:
var first = linkedHashSet.getFirst();
A LinkedHashSet utolsó elemét az új segítségével is elérheti getLast módszer, amely elkerüli a teljes halmaz iterációját.
A szekvenált gyűjtemények ezen fejlesztései nemcsak javítják a kód olvashatóságát, hanem egyszerűsítik az elemek visszakeresését is, így a Java programozás hatékonyabb és fejlesztőbarátabb.
Rögzítse a mintákat a kényelem érdekében
A Java 19 előnézeti funkciójaként bevezetett Record Patterns kényelmes mechanizmust kínál a rekord mezőinek eléréséhez Java nyelven anélkül, hogy explicit leadásokra vagy hozzáférési módszerekre lenne szükség.
Szinergizálnak vele Pattern Matching for instanceof és Mintaillesztés a kapcsolóhoz, jelentősen leegyszerűsíti a kódot és javítja az általános olvashatóságot.
Íme ennek a koncepciónak egy illusztrációja, egy egyszerű névvel Pozíció:
nyilvános rekord Pozíció(int x, int y){}
Korábban az objektum osztálya alapján különböző műveletek végrehajtásához a használata szükséges Pattern Matching for instanceof, amint azt a következő kódrészlet példázza:
nyilvánosüresnyomtatás(O objektum){
ha (o Például az p) {
System.out.printf("o egy pozíció: %d/%d%n", p.x(), p.y());
} másha (o Például az s) {
System.out.printf("o egy karakterlánc: %s%n", s);
} más {
System.out.printf("o valami más: %s%n", o);
}
}
Val vel Minták rögzítése, most közvetlenül illeszthet egy rekordmintát, mint pl Pozíció (int x, int y) ahelyett, hogy a Pozíció p minta. Ez lehetővé teszi a változók elérését x és y közvetlenül a kódban, így nincs szükség rá p.x() és p.y():
nyilvánosüresnyomtatás(O objektum){
ha (o Például azPozíció(int x, int y)) {
System.out.printf("o egy pozíció: %d/%d%n", x, y);
} másha (o Például az s) {
System.out.printf("o egy karakterlánc: %s%n", s);
} más {
System.out.printf("o valami más: %s%n", o);
}
}
Sőt, használhatod Minták rögzítése összefüggésben a Mintaillesztés a kapcsolóhoz, a kód további egyszerűsítése érdekében:
nyilvánosüresnyomtatás(O objektum){
kapcsoló (o) {
ügyPozíció(int x, int y) - > System.out.printf("o egy pozíció: %d/%d%n", x, y);
ügy String s - > System.out.printf("o egy karakterlánc: %s%n", s);
alapértelmezett - > System.out.printf("o valami más: %s%n", o);
}
}
Beágyazott rekordminták lehetővé teszi az olyan rekordok egyeztetését, amelyek mezői maguk is rekordok. Vegyünk például egy névre szóló rekordot Pálya amely magában foglalja a tól től és nak nek pozíció:
nyilvános rekord Pálya(Pozíció innen, pozíció ide){}
Rekordminták alkalmazásával, nyomtatással a Pálya az objektum tömörebb lesz:
nyilvánosüresnyomtatás(O objektum){
kapcsoló (o) {
ügyPálya(Pozíció innen, pozíció ide) - > System.out.printf("o egy elérési út: %d/%d -> %d/%d%n", from.x(), tól től.y(), nak nek.x(), nak nek.y());
// egyéb esetek
}
}
Segítségével Minták rögzítése, a különböző típusú mezőket tartalmazó rekordok kezelése nyilvánvalóbbá és olvashatóbbá válik. Tegyük fel, hogy módosított rekordokat, Pozíció2D és Pozíció3D, ahol Pozícióegy Java interfész mindkettő megvalósítja:
nyilvános zárt felületPozícióengedélyeketPozíció2D, Pozíció3D{}
nyilvános rekord Pozíció2D(int x, int y) Pozíciót hajt végre {}
nyilvános rekord Pozíció3D(int x, int y, int z) Pozíciót hajt végre {}
nyilvános rekord Útvonal < P kiterjeszti a pozíciót > (P-től, P-ig) {}
A 2D és 3D útvonalak nyomtatási viselkedésének megkülönböztetéséhez rögzítési mintákat használhat:
nyilvánosüresnyomtatás(O objektum){
kapcsoló (o) {
ügyPálya(Position2D from, Position2D to) - > System.out.printf("o egy 2D útvonal: %d/%d -> %d/%d%n", from.x(), tól től.y(), nak nek.x(), nak nek.y());
ügyPálya(Position3D honnan, Position3D to) - > System.out.printf("o egy 3D útvonal: %d/%d/%d -> %d/%d/%d%n", from.x(), tól től.y(), tól től.z(), nak nek.x(), nak nek.y(), nak nek.z());
// egyéb esetek
}
}
A rekordminták jelentősen csökkentik a bőbeszédűséget és javítják a kód olvashatóságát különböző típusú mezőket tartalmazó rekordok kezelésekor.
Nyisson meg új lehetőségeket a Java 21 segítségével
A Java 21 számos hatékony funkciót mutat be, amelyek kibővítik a Java programozási nyelv képességeit. E fejlesztések segítségével egyszerűsítheti fejlesztési folyamatait, és új lehetőségeket nyithat meg alkalmazásai előtt.
A legfrissebb nyelvi szolgáltatásokkal és Java-keretrendszerekkel való naprakészen tartás lehetővé teszi a hatékony és karbantartható kód fenntartását, így biztosítva, hogy a Java programozás élvonalában maradjon.