今天在项目中改领导要求的代码表现的时候发现了一个很有趣的问题。

但是的代码情况类似如下:

Integer test1 = null;
System.out.println("test1 = " + (test1+1));


看到代码后,这样在test1为null的情况下,那么打印语句肯定会抛空指针异常的,随即我修改了代码,代码像下面看到的这样:

Integer test1=null;
System.out.println("test1 = " + (test1==null?test1:(test1+1)));

就是上面的代码出现了同样的问题,还是在抛空指针一场的问题,不应该啊?!难道是java对三元式的处理是全部计算的?(猜想1)于是我写了下面的代码进行验证:

代码1:

System.out.println("test1 = "+ null);