java在调用 instanceof 前需要进行null检查吗

原文 标签 IT工具网 java

问题:

null instanceof SomeClass 会返回 null 还是抛出 NullPointerException 异常

答案一

在调用 instanceof 前不要进行null检查 null instanceof SomeClass 会返回 null 在 Java Language Specification 中 http://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.20.2

在运行时,如果该instanceof运算符的关系表达式(RelationExpression)不为 null,且这个引用可以被成功转型( §15.16),不抛出ClassCastException,则结果为true;
 否则结果为false。

答案二

public class IsInstanceOfTest {

    public static void main(final String[] args) {

        String s;

        s = "";

        System.out.println((s instanceof String));
        System.out.println(String.class.isInstance(s));

        s = null;

        System.out.println((s instanceof String));
        System.out.println(String.class.isInstance(s));
    }
}

打印出

true
true
false
false

原文链接

http://stackoverflow.com/questions/2950319/is-null-check-needed-before-calling-instanceof

相关文章:

如何使用Java创建一个内存泄漏的程序

java - 高级安装程序中的ODBC驱动程序

java - 保存或更新时是否可以将值从 bool(boolean) 值转换为“Y” /“N”

java - 通过dataInputStream从servlet到applet传递一些值

java - 在抽象类中模拟 protected 方法

java - SpringMVC 3和Tiles 2页面标题的本地化

怎样在一个<div>中水平居中另一个<div>

Nginx反向代理自建CDN加速节点实现DNS智能解析

什么是JavaScript严格模式?

数据结构有哪些,常用数据结构详解