¿Es necesaria una verificación de null antes de instanceof en Java?
¡Hola, colegas! Soy un desarrollador Java principiante y me encontré con una pregunta que me preocupa. Supongamos que tengo una variable que puede ser null y quiero verificar su tipo con instanceof. ¿Es necesario verificar explícitamente que la variable no sea null antes de esto?
Aquí hay un ejemplo de código que suelo escribir:
```java
Object obj = getSomeObject(); // puede devolver null
if (obj != null) {
if (obj instanceof String) {
String str = (String) obj;
System.out.println(str.length());
}
}
```
Pero recientemente me dijeron que instanceof es seguro por sí mismo y devuelve false para null. Es decir, se puede escribir así:
```java
if (obj instanceof String) {
String str = (String) obj;
System.out.println(str.length());
}
```
Lo probé — efectivamente, no se produce una excepción NullPointerException. Pero aún tengo dudas: ¿tal vez esto solo funciona en casos específicos? ¿Puede haber trampas? Por ejemplo, si obj es null, entonces instanc