Since Java 5, we\'ve had boxing/unboxing of primitive types so that int is wrapped to be java.lang.Integer, and so and and so forth.
int
java.lang.Integer
I see
Autounboxing can lead to hard to spot NPEs
Integer in = null; ... ... int i = in; // NPE at runtime
In most situations the null assignment to in is a lot less obvious than above.
in