Mit Java 21 wurden unbenannten Variablen (engl. unnamed variables) eingeführt. Statt einer Variable einen Namen zu geben, kann ein Unterstrich (_) verwendet werden. Folgende lokale Variablendeklaration ist erlaubt: Dies signalisiert dem Leser und Compiler, dass diese Variable im folgenden Code nicht verwendet wird. …
Seit Java 21 ist die Möglichkeit vom switch stark erweitert worden. Das betrifft auch Aufzählungstypen. Es war immer ein wenig umständlich, wenn ein switch Konstanten von verschiedenen Aufzählungstypen vergleichen sollte. Das ist einfacher geworden und dazu ein kleines Beispiel. Nehmen wir zwei enum an, die keine …
Seit Java 21 gibt es in der Klasse Math neue Methoden, die einen Wert in einem Bereich halten: static double clamp(double value, double min, double man) static float clamp(float value, float min, float max) static int clamp(long value, int min, int man) static long clamp(long value, long min, long max) Die Methoden …
Obwohl Records keine Klassen erweitern können, können sie Schnittstellen implementieren. Dies ermöglicht uns, Abstraktionen zu erstellen, was nützlich ist, um gemeinsame Record-Komponenten zu teilen. Betrachten wir ein Beispiel. Wir wollen den Basistyp Event nicht mehr als abstrakte Oberklasse deklarieren, sondern als …
Führen wir für die folgenden Beispiele ein Record für Punkte ein: Nun möchten wir überprüfen, ob die X-Y-Koordinaten eines Punktes auf null stehen. Dafür erstellen wir eine Methode namens isZeroPoint(…), die alle Objekttypen akzeptiert und false zurückgibt, wenn es sich nicht um einen Punkt handelt: Eine kompaktere …
Wir haben bereits gesehen, dass der instanceof-Operator genutzt werden kann, um einen einzelnen Typ zu prüfen. Nun können wir diese Fallunterscheidung erweitern, um mehrere Typen zu testen. Nehmen wir an, dass die Zustände von Nap, Workout und Event im XML-Format gespeichert werden sollen. In diesem Kontext kann eine …
"JDK 21 is in Rampdown Phase Two. The overall feature set is frozen. No further JEPs will be targeted to this release." https://openjdk.org/projects/jdk/21/ Features (previews omitted): JSR 431: Sequenced Collections JSR 439: Generational ZGC JSR 440: Record Patterns JSR 441: Pattern Matching for switch JSR 444: …