4 Punkte von GN⁺ 2023-09-18 | Noch keine Kommentare. | Auf WhatsApp teilen
  • 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.

Noch keine Kommentare.