Avatar ·

É 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.