在Java中,instanceof之前是否需要检查null?
大家好,同事们!我是一名初级Java开发者,遇到了一个困扰我的问题。假设我有一个可能为null的变量,我想用instanceof检查它的类型。在此之前是否需要显式检查变量不为null?
以下是我经常写的示例代码:
```java
Object obj = getSomeObject(); // 可能返回null
if (obj != null) {
if (obj instanceof String) {
String str = (String) obj;
System.out.println(str.length());
}
}
```
但最近有人告诉我,instanceof本身是安全的,对于null会返回false。也就是说可以这样写:
```java
if (obj instanceof String) {
String str = (String) obj;
System.out.println(str.length());
}
```
我试了一下——确实不会抛出NullPointerException。但我仍有疑虑:万一这只在特定情况下有效呢?也许有陷阱?例如,如果obj是null,那么instanceof返回false,但之后...