java-基础知识-三⽬运算符-NPE异常1.NPE异常
三⽬运算符: exp1?val1:val2;
exp1为true 返回 val1 反之 exp1=false 返回 val2
int i=0;
boolean flag=false;
Integer j=null;
// ************正常输出*****************
// Integer k=flag?j:i;
// 相当于下式
// Integer k = Integer.valueOf(flag ? j.intValue() : i);
// System.out.println(k);
/
/
// ***************NullPointerException*******NPE异常*********
// 在开发过程重点注意包装类型的⾃动拆箱问题
// 当表达式2与表达式3分别是基本类型和其包装类,包装类将⾃动拆箱引发NPE异常
// 最好保持表达式2 与表达式3 的类型⼀致
// Integer l=flag?i:j;
三目条件运算符?:的含义// Integer l = Integer.valueOf(flag ? i : j.intValue());
// System.out.println(j.intValue());
val1 与val2 类型相同,直接返回。
val1 与val2 类型不同,例如 i为int,j为integer 当返回值为j时,包装类转为基本类型 j.intValue() 。
所以返回j时,会出现NullPointerException。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论