【发布时间】:2013-08-08 11:23:11
【问题描述】:
你好,我在工作中遇到一个问题,问题是这样的:
Integer test1=null;
Integer test2=null;
我这样称呼他们:
test2=(test1==null?test1:(test1+1));
test2=(test1==null?test1:-1);
然后java抛出一个NullPointerException,所以我写另一个这样的代码:
test2=(test1==null?test1:test1);
这段代码没问题。
但是,为什么?
【问题讨论】:
-
@Heuster 没错,答案是 a) 完全不明显,b) 很难用谷歌搜索。
-
请注意JLS Conditional Operator 中关于如何计算表达式的规则。
-
@Rohit Jain,谢谢你的回答,我知道。
标签: java nullpointerexception ternary-operator