Run the following Java code:
boolean b = false; Double d1 = 0d; Double d2 = null; Double d = b ? d1.doubleValue() : d2;
Why is there a Null
Because the two expressions around : must return the same type. This means Java tries to convert the expression d2 to double. This means the bytecode calls doubleValue() on d2 -> NPE.
:
d2
double
doubleValue()