bas*_*han 1 java nullpointerexception conditional-statements
谁能告诉我为什么Java会在NullPointerException这里抛出一个?
Float x = <some condition> ? myObject.getSomeFloat() : 0.0f;
Run Code Online (Sandbox Code Playgroud)
getSomeFloat返回Float.0.0f到new Float(0)工作正常.这个三元运算符的类型是float.因此,如果myObject.getSomeFloat()返回null,NullPointerException则在<some condition>为true 时抛出a 并myObject.getSomeFloat().floatValue()调用以转换Float为float.
如果第二个和第三个操作数之一是原始类型T,而另一个操作数的类型是将装箱转换(第5.1.7节)应用于T的结果,那么条件表达式的类型是T.
在你的情况下,你有一个原始类型 - 浮点数 - 和浮点数的盒装版本 - 浮点数.因此,条件表达式的类型是基本类型 - float.