- Java 21, dessen Veröffentlichung für den 19.09.2023 geplant ist, unterstützt Record-Patterns in Switch-Blöcken und -Ausdrücken; das ist ein wichtiges Update, das Java näher an funktionale Programmiermuster wie in Kotlin, Rust und C# heranführt
- Java hat sich in den vergangenen zehn Jahren rasant weiterentwickelt, und seit Java 9 erscheinen alle sechs Monate größere Updates
- Java 21 stabilisiert Record-Patterns und Pattern Matching für
switch und ermöglicht damit die Darstellung algebraischer Datentypen, einem Kernelement der funktionalen Programmierung
- Das Konzept algebraischer Datentypen wird über die Typentheorie erklärt, ein Teilgebiet der Mengenlehre
- Die neue Version führt außerdem Pattern Matching ein, wodurch eine statische Prüfung bestimmter Datenmuster möglich wird
- Java 21 führt zudem versiegelte Klassen oder Interfaces ein, damit Entwickler die Benutzerinteraktion mit Library-APIs steuern können
- Versiegelte Klassen oder Interfaces unterstützen ein Designmuster auf Basis des Konzepts von Sum-Typen; das bedeutet, dass ein Typ zu einem Zeitpunkt eine seiner Komponentenvarianten sein kann
- Die neue Version bietet außerdem Guard-Klauseln, mit denen sich komplexe Bedingungen in
switch-Anweisungen und -Ausdrücken prägnant formulieren lassen
- Java 21 führt mit
java.lang.MatchException außerdem eine neue Exception-Klasse ein, die auftritt, wenn ein Pattern Match fehlschlägt
- Der Artikel behandelt den Einsatz von Switch-Blöcken in Java 21 und zeigt, wie unter bestimmten Bedingungen eine
MatchException ausgelöst werden kann
- Eine
MatchException tritt auf, wenn ein Switch-Block weder zum Selektor noch zu einer der angegebenen Varianten passt; das gilt als äußerst ungewöhnlich
- Java Enhancement Proposal (JEP) 441 erkennt an, dass Record-Accessor-Methoden, die immer eine Exception auslösen, äußerst ungewöhnlich sind
- Der Artikel zeigt ein Beispiel für einen Switch-Block, der durch einen Division-durch-Null-Fehler in einer Guard-Klausel eine
MatchException auslösen kann
- Der Autor weist darauf hin, dass die Situation komplizierter wird, wenn der Dividend in einer Division ein dynamischer Wert ist, der 0 sein kann
- Der Artikel ist Teil einer Serie, die die neuen Funktionen und Möglichkeiten von Java 21 untersucht; künftig sollen mit praktischen Beispielen einige interessante Merkmale gezeigt werden, wie sie das Schreiben von Java-Code verbessern können
- Der Autor erwähnt, dass bestimmte Themen wie die Interaktion von Generics mit Switch-Patterns in diesem Artikel nicht behandelt werden, aber in späteren Beiträgen aufgegriffen werden könnten
- Der Artikel ist relevant für alle, die sich für JVM-Pattern-Matching, funktionale Programmierung, Java 21 und algebraische Typen interessieren
Noch keine Kommentare.