The operator == is undefined for the argument type(s) int, null

来源:互联网 发布:程序员的电脑屏幕 编辑:程序博客网 时间:2024/06/07 23:16
package cn.edu.shu.web.test;public class TestInteger {    public static void main(String[] args) {        /**         * 非常奇怪的问题,问题来源是在Struts2的action中,如果从session中取值,如果取不到的话,那么应该为null,由于我将其强转为Integer类型了,其后再将其与Integer比较时,居然抛空指针异常         */        Object one = null;        Integer two = (Integer) one;        System.out.println(null == two);// out put true        System.out.println(two instanceof Integer);// out put false        System.out.println(two instanceof Object);// out put false        // System.out.println(0 == two);// 抛出空指针异常        // 思索,由于JDK有自动拆装箱操作,所以即使用的是Integer,其也会被拆箱为int类型,这样在使用==操作符时,不满足int型和null型比较        // 编译错误: The operator == is undefined for the argument type(s) int, null        System.out.println(0 == null);    }}
0 1
原创粉丝点击