É necessária a verificação de null antes de instanceof em Java?
Olá a todos! Sou um desenvolvedor Java iniciante e tenho uma dúvida sobre o operador instanceof. No código, frequentemente vejo esta construção:
```java
if (obj != null && obj instanceof String) {
// fazemos algo
}
```
Esta dupla verificação me confunde. Se obj é null, o instanceof ainda retornará false, porque null não é uma instância de nenhuma classe. Isso significa que a verificação de null é redundante? Ou existem armadilhas?
Tentei escrever um teste simples:
```java
Object obj = null;
System.out.println(obj instanceof String); // imprime false
```
De fato, sem a verificação de null, o código funciona e não lança NullPointerException. Mas então por que muitos desenvolvedores continuam escrevendo `obj != null && obj instanceof ...`? É apenas um hábito ou há uma necessidade real? Talvez esteja relacionado a versões antigas do Java ou a concorrência?
Expliquem, por favor, se é necessário verificar null antes de instanceof e, se sim, em quais casos.
No answers yet.
Faça login para deixar uma resposta