This code compiles:
Integer arg = null;
int x = arg;
But it will crash at runtime with a java.lang.NullPointerException
on the second line.
The problem is that a primitive int
cannot have a null
value.
This is a minimalistic example,
but in practice it often manifests in more sophisticated forms.
The NullPointerException
is not very intuitive and is often little help in locating such bugs.
Rely on autoboxing and auto-unboxing with care,
make sure that unboxed values will not have null
values at runtime.