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.

instagram viewer

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.