
让我们看一下这行:
return y == null ? null : y.intValue();
在
? :声明中,的两侧
:必须具有相同的类型。在这种情况下,Java将使其具有type
Integer。一种
Integer可能是
null,所以左侧是确定的。该表达式
y.intValue()的类型为
int,但是Java
Integer会将其自动装箱(请注意,您可能已经编写
y了将保存该自动箱的内容)。
现在,必须将结果重新装箱
int,因为方法的返回类型为
int。如果您拆箱的
Integer是
null,你会得到一个
NullPointerException。
注意:Java语言规范的第15.25段说明了有关
?:条件运算符的类型转换的确切规则。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)