embarc logo
embarc logo

Pattern Matching in Java

 
 

Pattern Matching in Java
… und warum es dafür algebraische Datentypen braucht
Falk Sippach
JAX 2022
Donnerstag, 04. Mai 2022, 11:45 - 12:45 Uhr
online
@jaxcon #jaxcon

Foliendownload (PDF)

 
 

Abstract

JAX 2022

Pattern Matching ist ein Mechanismus, um Werte gegen Muster abzuprüfen. Bei einem Treffer können diese Werte dann in ihre Bestandteile zerlegt und somit leicht und sicher weiterverarbeitet werden. Dieses in erster Linie aus funktionalen Programmiersprachen bekannte Konzept ist damit eine sehr mächtige und flexible Alternative zu klassischen Switch Statements bzw. if/else-Anweisungskaskaden. Seit einigen Jahren wird nun schon im JDK-Inkubatorprojekt Amber an der Einführung von Pattern Matching in Java gearbeitet. Ein Teil der Implementierungen haben mittlerweile den Weg in das OpenJDK gefunden. Sie versprechen kürzeren und verständlicheren Quellcode, der zudem vom Compiler auf Korrektheit geprüft werden kann. Er ist einfacher zu lesen und lässt sich somit leichter warten und erweitern.

Begleitet von Codebeispielen werden wir den Istzustand des Musterabgleichs in Java näher beleuchten. Ihr lernt die neuen Features wie Switch Expression, Pattern Matching for instanceof, Sealed Classes und Pattern Matching for switch näher kennen und erfahrt, wo sie sinnvoll eingesetzt werden können. Anschließend werfen wir einen Blick auf alternative Patterntypen, die sogar eine Destrukturierung von Records und Arrays ermöglichen.