What is the need of an intValue() method if wrappers use unboxing?

integer, java, unboxing, wrapper

Solution

Unboxing was introduced in Java 5. The wrappers (including this method) have been there since the original release.

A link to the Javadoc

In that time (1996) we did need the `intValue()` method and as Oracle guarantees backward backwards compatibility... up to a certain level (it is not always 100% on major releases).

The method has to stay in.

Problem

For example, look at this code: ``` Integer myInt = new Integer(5); int i1 = myInt.intValue(); int i2 = myInt; System.out.println(i1); System.out.println(i2); ``` As you can see, I have two ways of copying my integer value from the wrapper to the primive: I can use unboxing, OR I can use the method `Integer#intValue()`. So what's the need of having a method when there is already unboxing?

Original source