Javaちょこっとリファレンス
HOME > オートボクシング/アンボクシング

オートボクシング/アンボクシング

オートボクシング/アンボクシング機能を使うと、intやdouble型などのプリミティブ型と対応するラッパー型の変換を簡単に行うことが出来ます。
オートボクシング/アンボクシング機能は、J2SE 5.0から導入されました。

int型からInteger型に変換する場合
 オートボクシングなし:Integer i = new Integer(123);
 オートボクシングあり:Integer i = 123;

Integer型からint型に変換する場合
 Integer i = new Integer(123);
  アンボクシングなし:int a = i.intValue;
  アンボクシングあり:int a = i;

プリミティブ型→ラッパー型にするのを「オートボクシング(Autoboxing)」、
 ラッパー型→プリミティブ型にするのを「アンボクシング(Unboxing)」といいます。

オートボクシング/アンボクシングを使ったサンプル

オートボクシング/アンボクシングサンプル
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class AutoBoxingSample {

    public static void main(String[] args){

        //ArrayListの生成とデータのセット
        List<Integer> al = new ArrayList<Integer>();
        al.add(10);    //←オートボクシング
        al.add(20);    //←オートボクシング
        al.add(30);    //←オートボクシング

        //ArrayListを1件ずつ取り出し加算する
        int result = 0;
        Iterator<Integer> it = al.iterator();
        while (it.hasNext()) {
            result = result + it.next();    //←アンボクシング
        }

        //結果をコンソールに出力する
        System.out.println(result);

    }
}

実行結果
C:\>java AutoBoxingSample 60

オートボクシング/アンボクシングでは以下のように変換されます。

【オートボクシング/アンボクシング対応表】
 ラッパークラス
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
charCharacter
booleanBoolean
このエントリーをはてなブックマークに追加

ラッパークラスカテゴリ

HOMEへ戻る TOPへ戻る