Pattern Matching in Java – und warum es dafür algebraische Datentypen braucht

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 eine sehr mächtige und flexible Alternative zu klassischen Switch Statements beziehungsweise if/else-Anweisungskaskaden.

Seit einigen Jahren wird nun schon im JDK-Inkubatorprojekt Amber an der Einführung von Pattern Matching in Java gearbeitet. Teile 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 leicht warten und erweitern.

Begleitet von Codebeispielen werden wir den Ist-Zustand des Musterabgleichs in Java 21 näher beleuchten. Die Teilnehmer lernen die neuen Features wie Switch Expression, Records, Sealed Classes, verschiedene Pattern Typen (Type, Record sowie Unnamed Patterns) und Pattern Matching for switch näher kennen und erfahren, wo sie sinnvoll eingesetzt werden können. Außerdem werfen wir einen Blick auf zukünftige, alternative Pattern-Typen.

Speaker

 

Falk Sippach
Falk Sippach ist bei der embarc Software Consulting GmbH als Softwarearchitekt, Berater und Trainer stets auf der Suche nach dem Funken Leidenschaft, den er bei seinen Teilnehmern, Kunden und Kollegen entfachen kann. Seit über 15 Jahren unterstützt er in meist agilen Softwareentwicklungsprojekten im Java-Umfeld. Als aktiver Bestandteil der Community (Mitorganisator der JUG Darmstadt und Mitglied der Java Champions) teilt er zudem sein Wissen gern in Artikeln, Blogbeiträgen, sowie bei Vorträgen auf Konferenzen oder User Group Treffen und unterstützt bei der Organisation diverser Fachveranstaltungen.

betterCode-Newsletter

Sie möchten über die betterCode() Java und weitere unserer betterCode()-Events auf dem Laufenden gehalten werden?

 

Anmelden