三目运算符condition ? 表达式1 :表达式2中,表达式1和2在类型对齐时,可能因自动拆箱导致NPE异常:
类型对齐的自动拆箱场景:
1.表达式1或表达式2,只要有一个是基本类型
2.表达式1或2的值类型不一致,会强制拆箱成范围更大的那个类型
例:
Integer a = 1;
Integer b = 2;
Integer c = null;
Boolean flag = false;
// a*b的结果是int类型,那么c会强制拆箱成int类型,导致抛出NPE异常
Integer result = flag ? a*b : c;
三目运算法中隐藏的问题
最新推荐文章于 2023-04-12 22:36:22 发布