在三元运算符中铸造时的NPE

时间:2018-01-26 03:49:23

标签: java casting nullpointerexception ternary-operator

我正在尝试将Object转换为三元运算符中的Character,但如果对象为null,则会获得NPE。但一般来说,如果我将对象(null)转换为Character,它就可以工作。所以我的问题是为什么我们不能在三元运算符中转换null个对象?

Object[] objs = new Object[3];
        objs[0] = 'A';
        objs[1] = 'C';

        Character case1 = (Character) objs[2]; // ok 
        Character case2 = !Character.valueOf('A').equals(objs[0]) ? 'N' : (Character) objs[2]; // NPE

在上面的示例中,我在案例2中获得了NPE

0 个答案:

没有答案