Avatar ·

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.