Java · Intermediário · Português · Técnico
instanceof com padrão
Forma do instanceof que já declara uma variável do tipo testado, como obj instanceof String s, dispensando o cast manual depois da verificação.
Onde usar
Aparece ao refatorar equals e cadeias de instanceof seguido de cast. Reduz repetição e erros de digitação.
Em código
static int tamanho(Object o) {
if (o instanceof String s) {
return s.length();
}
if (!(o instanceof List<?> l)) return -1;
return l.size();
}Exemplos
Troca esse instanceof seguido de cast por instanceof com padrão.
A variável do padrão só existe dentro do if.
Cuidado
A variável só vale onde o compilador prova que o teste foi verdadeiro; fora desse escopo ela não existe.
Sinônimos
pattern matching para instanceof