Pattern matching per instanceof
Combina il controllo del tipo e il cast in un unico passo con il pattern matching.
Confronto Codice
✕ 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());
}
Vedi un problema con questo codice? Faccelo sapere.
Perché vince l'approccio moderno
Nessun cast ridondante
Il controllo del tipo e il binding della variabile avvengono in un'unica espressione.
Meno righe
Una riga invece di due — la riga del cast sparisce completamente.
Scope sicuro
La variabile pattern è nello scope solo dove il tipo è garantito.
Approccio Vecchio
instanceof + Cast
Approccio Moderno
Variabile pattern
Dal JDK
16
Difficoltà
Principiante
Supporto JDK
Pattern matching per instanceof
Disponibile
Ampiamente disponibile dal JDK 16 (marzo 2021)
Come funziona
Il pattern matching per instanceof elimina il cast ridondante dopo un controllo del tipo. La variabile è automaticamente scoped dove il pattern corrisponde, rendendo il codice più sicuro e conciso.
Documentazione Correlata