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
This is a minimalistic example,
but in practice it often manifests in more sophisticated forms.
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.