Oracle hat die neue Java-Version 14 angekündigt. Die testet neue Features wie Pattern Matching auf “instanceof”, vereinfacht den Umgang mit Datenspeicher-Klassen und erneuert “switch”-Ausdrücke.
In der Pressemitteilung hebt Oracle einige der neuen Funktionen besonders hervor. So habe die Entwickler-Community insbesondere auf zwei Dinge gewartet, die sich nun in Preview-Versionen mit an Bord von Java 14 befinden: Pattern Matching für den “instanceof”-Operator (JEP 305) und Records (JEP 359). Für Text Blocks (JEP 368) gibt es nun bereits die zweite Preview-Runde.
Pattern Matching
Beim Pattern Matching (JEP 305) geht es darum, abhängig von einer bestimmten Bedingung Komponenten aus einem Objekt zu lösen. Dieses Herauslösen lässt sich dank Pattern Matching nun mit weniger überflüssigem Code bewerkstelligen. Als Beispiel zeigt der Blogpost folgenden Code:
if (obj instanceof String) {
String s = (String) obj;
// use s
}
Der prüft erst, ob “obj” eine Instanz von “String” ist und erzeugt dann eine neue Variable “s”, um “obj” als “String” zu verwenden. Neu ist nun die Möglichkeit, dass der “instanceof”-Operator nicht nur einen Typ, sondern auch ein Testpattern für einen Typ akzeptiert, was den Code am Ende verkürzt:
if (obj instanceof String s) {
// can use s here
} else {
// can't use s here
}
Records
Records (JEP 359) vereinfachen hingegen die Syntax von Klassen, die einfach nur als Datensilo fungieren. Um solche Klassen, die nur Daten halten, zu schreiben, müssen Entwickler viel sich wiederholenden und fehleranfälligen Code erzeugen. Dem soll Records zwar entgegen wirken, zugleich betont der Blogpost aber, dass es nicht nur darum gehe, überflüssigen Code (Boilerplate) zu entsorgen. Vielmehr stehe im Vordergrund, flache und unveränderbare Daten auch einfach und schnell als Daten modellieren zu können.
Eine zweite Runde gibt es für die Text-Blöcke (JEP 368): Diese mehrzeiligen String-Literals sind neu in Java und ersparen den Einsatz von Escape-Sequenzen, indem sie den String automatisch auf vorhersehbare Weise formatieren.
Einfacher switchen
Ein neuer Standard an Bord von Java 14 sind die überarbeiteten “Switch”-Ausdrücke (JEP 361), die bereits in Java 12 und 13 als Previews bereit standen. Orientierten sich die bisherigen Switch-Ausdrücke an C und C++, vereinfachen die Java-Entwickler den Einsatz nun. Ein Switch-Statement sind dann so aus:
switch (day) {
case MONDAY, FRIDAY, SUNDAY -> System.out.println(6);
case TUESDAY -> System.out.println(7);
case THURSDAY, SATURDAY -> System.out.println(8);
case WEDNESDAY -> System.out.println(9);
}
Der Vorteil gegenüber den bisherigen langen Switch-Statements bestehe darin, dass sie weniger fehleranfällig sind, etwa für fehlende “Break”-Statements” oder Syntaxfehler, wie sie in langen Switch-Blöcken auftreten können. Das sind nur ein paar der Änderungen und Neuerung von Java 14, eine komplette Übersicht liefert der Blogpost.






