发布日期:2018-03-26
调用instanceof之前是否需要空检查?+ 查看更多
调用instanceof之前是否需要空检查?
+ 查看更多
发布日期:2018-03-10 13:32
分类:JAVA
浏览次数:250
null instanceof SomeClass语句返回false,还是抛出NullPointerException异常?
回答
不,使用instanceof之前不需要空检查。如果x是空的,表达式x instanceof SomeClass的结果就是false。
以下内容来自http://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.20.2页面中的Java语言规范。
“在运行时,如果相关表达式的值非空并且这个引用可以被转换(§15.16)成引用类型,而不会引起ClassCastException异常,那么instanceof运算符的结果是true。否则结果是false。”
所以如果运算对象是空的,结果是false。