Est-ce qu'une vérification de null est nécessaire avant instanceof en Java ?
Bonjour à tous ! Je suis un développeur Java débutant et j'ai une question concernant l'opérateur instanceof. Dans le code, je vois souvent cette construction :
```java
if (obj != null && obj instanceof String) {
// faisons quelque chose
}
```
Cette double vérification me trouble. Si obj est null, instanceof retournera de toute façon false, car null n'est une instance d'aucune classe. Cela signifie-t-il que la vérification de null est redondante ? Ou y a-t-il des pièges ?
J'ai essayé d'écrire un test simple :
```java
Object obj = null;
System.out.println(obj instanceof String); // affiche false
```
Effectivement, sans vérification de null, le code fonctionne et ne plante pas avec NullPointerException. Mais alors pourquoi de nombreux développeurs continuent-ils à écrire `obj != null && obj instanceof ...` ? Est-ce simplement une habitude ou y a-t-il une réelle nécessité ? Peut-être que cela est lié à d'anciennes versions de Java ou au multithreading ?
Expliquez-moi, s'il vous plaît, s'il est nécessaire de vérifier null avant instanceof, et si oui, dans quels cas.