最近在开发中遇到一个莫名其妙的bug,一个给Double类型赋值的三段式报了空指针异常,从程序字面上完全看不出有什么问题。项目代码,不方便直接贴,我写了下面这段例子进行说明:
直接使用null赋值给三段式
public static Double test() {
Double b = null;
Double result = b == null
? null
: b.doubleValue();
return result;
}
这段代码能够成功执行,看一下编译后的字节码吧(通过ItelliJ查看反编译后的代码)
public static Double test() {
Object b = null;
Double result = b == null?null:Double.valueOf</