时间:2010-07-25 05:21:25

标签: java

5 个答案:

答案 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");
             }
         }