Java 16 - Pattern Matching for instanceof
Este é mais um recurso introduzido no Java 14 como preview e continuou assim até ser liberado definitivamente no Java 16.
O objetivo é deixar o instanceof mais simples e seguro uma vez que o “cast” é feito em tempo de compilação. Mas não é apenas isso...
Ainda podemos utilizar expressões mais complexas para validar a instância
Neste caso, podemos ter algumas restrições quanto às expressões após o instanceof. Por exemplo, não podemos utilizar a expressão ||. A explicação para isso é que por causa da semântica do operador ||, a variável padrão gato pode não ter sido atribuída e, portanto, a análise de fluxo determina que a variável gato não está no escopo no lado direito do operador ||.
O código acima não compila, pois não se pode ter certeza que a variável gato será atribuída.
Conclusão
Esta mudança não é simplesmente para deixar o instanceof mais simples e sim permitir que os records, expressões switch e futuramente padrões de desconstrução tão fácil como construir um objeto.
Referências
https://openjdk.java.net/jeps/394
https://www.infoq.com/articles/java-pattern-matching/
Comentários
Postar um comentário