Pattern Matching überall
Pattern Matching ist eine der spannendsten Entwicklungen im modernen Java und eine wichtige Voraussetzung für die datenorientierte Programmierung. Es erlaubt, Werte nicht nur zu prüfen, sondern sie passend zu ihrer Struktur sicher zu zerlegen und direkt weiterzuverarbeiten. Dadurch wird Code prägnanter, verständlicher und besser durch den Compiler überprüfbar. Denn gerade klassische Fallunterscheidungen werden bei komplexeren Modellen schnell unübersichtlich und ungültige Zustände oft erst spät zur Laufzeit sichtbar. Mit Pattern Matching werden die Unterschiede zwischen Daten explizit und ihre Verarbeitung klarer und robuster.
Java bietet dafür inzwischen eine ganze Reihe neuer Sprachmittel, darunter Switch Expressions, Records, Sealed Classes, Type, Record, Unnamed sowie perspektivisch Primitive Type Patterns und die Verwendung dieser Patterns im switch. Im Zusammenspiel mit algebraischen Datentypen und der Trennung von Daten und Verhalten entstehen so präzisere Modelle und eindeutigere Fallunterscheidungen. Der Vortrag zeigt den heutigen Stand und wirft auch einen Blick auf künftige Erweiterungen wie die Dekonstruktion beliebiger Java-Klassen (durch Carrier Classes als veränderliche Alternative zu den immutable Records) und damit eine stark vereinfachte (De-)Serialisierung.