答案 0 :(得分:19)
答案 1 :(得分:4)
答案 2 :(得分:2)
答案 3 :(得分:0)
答案 4 :(得分:0)
instanceOf运算符不需要显式空检查,因为如果操作数为null,它不会抛出空指针异常。
在运行时,如果关系表达式的值不为null,并且可以将引用强制转换为引用类型而不引发类强制转换异常,则instanceOf运算符的结果为true。
如果操作数为null,则instanceOf运算符返回false,因此不需要显式空检查。
考虑下面的例子,
public static void main(String[] args) {
if(a != null && a instanceof ArrayList){ //Violation
System.out.println("In if block");
}
else
{
System.out.println("In else block");
}
}
instanceOf的正确用法如下所示,
public static void main(String[] args) {
if(a instanceof ArrayList){ //Correct way
System.out.println("In if block");
}
else
{
System.out.println("In else block");
}
}