7

たとえば、次のコードを見てください。

Integer myInt = new Integer(5);
int i1 = myInt.intValue();
int i2 = myInt;
    
System.out.println(i1);
System.out.println(i2);

ご覧のとおり、ラッパーからプリミティブに整数値をコピーする方法は 2 つあります。

私はボックス化解除を使用できます

また

メソッドを使用できますInteger#intValue()

では、すでにアンボックスが行われているのに、メソッドを用意する必要があるでしょうか?

4

2 に答える 2

13

ボックス化解除はJava 5で導入されました。ラッパー (このメソッドを含む) は、元のリリースから存在しています。

Javadocへのリンク

その時 (1996 年) にはこのintValue()方法が必要でした。Oracle は下位下位互換性を保証しているため、一定のレベルまで (メジャー リリースでは常に 100% であるとは限りません)。

方法はとどまらなければなりません。

于 2013-04-13T08:45:36.183 に答える
11

良い歴史的展望を与えるフランクの答えに加えて、intValue()状況によっては今日を使用する必要があります。

を と見なすことができないことを示す次の落とし穴に注意してIntegerくださいint

 Integer i1 = new Integer(5);
 Integer i2 = new Integer(5);

 //This would be the way if they were int
 System.out.println(i1 == i2); //Returns false

 //This is the way for Integers
 System.out.println(i1.intValue()==i2.intValue()); //Returns true
 System.out.println(i1.equals(i2)); //Returns true

戻り値

false
true
true
于 2013-04-13T09:29:27.047 に答える