Das Konzept von verschlossenen Klassen ist kein neues. Mit ihnen soll die Erweiterung der Klassenhierarchie durch Externe unterbunden werden. Java kenn dafür seit vielen Jahren die final-classes. Was, aber wenn die Klasse nur für den Benutzter verschlossen sein?
Hier hilft die JEP-409 die mit Java 17 das Konzept der Sealed Classes einführt. Mit Sealed Classes bekommen Java Entwickler die volle Kontrolle über die Vererbungsmöglichkeiten ihres Codes.
Wie man dieses Features benutzt kann und wie sie mit anderen neuen Java Features wie Pattern Matching zusammen spielen möchte ich in dieser Session beleuchten.
Code Examples see: https://github.com/MBoegers/public-talks/tree/main/jfn2021-sealed_classes/examples