Pattern Matching für instanceof
Typprüfung und Cast in einem Schritt mit Pattern Matching kombinieren.
Code-Vergleich
✕ Java 8
if (obj instanceof String) {
String s = (String) obj;
System.out.println(s.length());
}
✓ Java 16+
if (obj instanceof String s) {
IO.println(s.length());
}
Problem mit diesem Code entdeckt? Sag uns Bescheid.
Warum der moderne Weg gewinnt
Kein überflüssiger Cast
Typprüfung und Variablenbindung erfolgen in einem einzigen Ausdruck.
Weniger Zeilen
Eine Zeile statt zwei – die Cast-Zeile entfällt vollständig.
Gültigkeitsbereich-Sicherheit
Die Pattern-Variable ist nur dort im Gültigkeitsbereich, wo der Typ garantiert ist.
Alter Ansatz
instanceof + Cast
Moderner Ansatz
Pattern-Variable
Seit JDK
16
Schwierigkeitsgrad
Einsteiger
JDK-Unterstützung
Pattern Matching für instanceof
Verfügbar
Seit JDK 16 allgemein verfügbar (März 2021)
Wie es funktioniert
Pattern Matching für instanceof eliminiert den überflüssigen Cast nach einer Typprüfung. Die Variable ist automatisch auf den Gültigkeitsbereich beschränkt, in dem das Muster passt, was den Code sicherer und kürzer macht.
Zugehörige Dokumentation