Programmiersprache: Java 17 erweitert Pattern Matching und versiegelt Klassen

Das LTS-Release JDK 17 hat Pattern Matching für Switch Expressions als Preview-Feature an Bord. Die nächste LTS-Version könnte schon in zwei Jahren anstehen.

In Pocket speichern vorlesen Druckansicht 148 Kommentare lesen

(Bild: Natalia Hanin / Shutterstock.com)

Lesezeit: 3 Min.
Von
  • Maika Möbus
Inhaltsverzeichnis

Java 17 ist als erstes Release mit Long-term Support (LTS) seit Java 11 im Jahr 2018 erschienen. Es enthält die seitdem entwickelten neuen Sprachfeatures aus Java 12 bis 16 sowie weitere Neuerungen aus Java Enhancement Proposals (JEPs) zum JDK 17. Daneben wartet das Team mit einer neuen Website sowie einem vorgeschlagenen kürzeren Release-Zyklus auf.

Die Ankündigung von Java 17 fand auf dem virtuellen Event "Oracle Developer Live: Java Innovations" statt. Passend zur Veröffentlichung gab Chief Architect Mark Reinhold in seinem Blog den Vorschlag bekannt, den LTS-Release-Zyklus von drei Jahren auf zwei zu verkürzen – trotz der Tatsache, dass einige Unternehmen weiterhin an der vorletzten LTS-Version Java 8 festhalten, die im Jahr 2014 erschien. Der diesjährige Snyk-Report zum JVM-Ökosystem förderte allerdings zutage, dass viele der Befragten auf die parallele Nutzung verschiedener Java-Versionen setzen, sodass diese Upgrade-freudiger sein könnten als es auf den ersten Blick scheint.

Bereits Anfang des Jahres war abzusehen, dass einige der vorgeschlagenen JEPs den Weg in das JDK 17 finden würden, darunter die in JEP 382 genannte neue Rendering-Pipeline für macOS, die auf die neue Apple Metal API zugreift. Die bisher genutzte Pipeline verwendete eine veraltete OpenGL API, deren Tage bei Apple gezählt sind.

Ein weiteres vorgeschlagenes Feature war die einheitliche API für schon vorhandene und neu hinzukommende Pseudo-Random Number Generators namens RandomGenerator. Auch dieser Vorschlag aus JEP 356 ist im finalen Release von JDK 17 umgesetzt.

Java 17 erweitert Pattern Matching auf Switch Expressions und Switch Statements und setzt damit das in JEP 406 gewünschte Preview-Feature um. Das soll das Testen einer Expression gegen eine Reihe von Patterns jeweils mit einer spezifischen Aktion ermöglichen, wodurch sich komplexe, datenorientierte Queries prägnant und sicher ausdrücken lassen sollen.

Das auch in anderen Programmiersprachen genutzte Pattern Matching hielt erstmals in JDK 14 als Preview-Feature Einzug und lässt sich seit Java 16 basierend auf JEP 394 auch für den instanceof-Operator nutzen.

Bereits seit Java 15 sind Sealed Classes und Interfaces bekannt, als sie im Preview-Modus starteten und in Java 16 weitere Neuerungen erhielten. Das Versiegeln dient der Begrenzung des Zugriffs durch andere Klassen und Interfaces zur ihrer Erweiterung oder Implementierung. In Java 17 sind die versiegelten Klassen nun gemäß JEP 409 dem Preview-Status entwachsen.

Weitere neue Features in JDK 17 umfassen die Entfernung des experimentellen AOT- und JIT-Compilers, da sich dessen Instandhaltung als zu aufwendig erwies, sowie die Deprecation des Security Managers, der in einem künftigen Release entfallen soll.

Nicht zuletzt präsentierte Oracle eine brandneue Website, die auf Java-Entwickler zugeschnitten ist: Dev.java soll aktualisierten Java-Tutorials ein Zuhause bieten. Daneben stellt sie beispielsweise Informationen und Links zur Community und aktuellen Java-News sowie eine Java-Projektübersicht zur Verfügung – wobei natürlich auch der Download-Link zur aktuellen Version 17 nicht fehlen darf.

Weitere Informationen zum Release von Java 17 finden Interessierte in den Release Notes.

(mai)