This little snippet causes NPE when data
isn't foo
nor bar
.
Boolean baz = data == foo ? true : data == bar ? false : null
I'm guessing the compiler interprets the null
as a null
Boolean
and tries to autounbox it, but why? Is it because there are true
/false
values present? If so, shouldn't they just be autoboxed instead? The variable is of type Boolean
after all.