Pattern Matching in Java
... und warum es dafür in Java algebraische Datentypen braucht
Sprecher: Falk Sippach
BaselOne 2022
Mittwoch, 19. Oktober 2022, 15:10 - 16:00 Uhr
Markthalle Basel
@Baselone #BaselOne22
Pattern Matching ist ein Mechanismus, Werte gegen Muster abzuprüfen. Bei einem Treffer können diese Werte dann in ihre Bestandteile zerlegt und somit leicht und sicherer weiterverarbeitet werden. Das Pattern Matching ist damit eine sehr mächtige und flexible Alternative zu klassischen Switch-Statements bzw. if/else-Anweisungskaskaden. Dieses Konzept ist in erster Linie aus funktionalen Programmiersprachen bekannt.
Seit einigen Jahren wird nun aber auch im 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 durch Codebeispiele werden wir den Ist-Zustand des Musterabgleichs im JDK 17 näher beleuchten. Ihr lernt die neuen Features wie Switch Expression, Pattern Matching for instanceof, Sealed Classes und Pattern Matching for Switch (Preview) näher kennen und erfahrt, wo sie sinnvoll eingesetzt werden können. Anschließend werden wir einen Blick auf die noch fehlenden Funktionen – wie Record-Typen und Arrays bei der Destruktierung der Werte helfen werden.