オートボクシング

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動先: 案内検索

オートボクシング(Autoboxing)とは、Javaが持つ機能の1つ。 Java SE 5(J2SE 5.0)で追加され、JSR-201で宣言されている。

リストコレクションに対して、直接プリミティブ型の値を挿入することが出来ないため、プリミティブラッパークラスに代入(box)後、リストに追加するという処理があるが、これを自動化してしまうのがオートボクシングである。オートボクシングが実装された処理系では逆の操作(アンボクシング)も自動で行われる。

例えば、int型の値をリストに挿入する時、Integerクラスでラップする処理を自動化するなどということができる。

[編集]

以下に、オートボクシングを用いてプリミティブ型をプリミティブラッパークラスに変換したコードの例を示す。このコードは、Java SE 5以前のバージョンではオートボクシングに対応していないため、該当する箇所でコンパイルエラーが発生する。

int x = 1;
List<Integer> list = new ArrayList<Integer>();
list.add(x); // オートボクシングを用いた場合。
list.add(2); // オートボクシングを用いた場合。
list.add(Integer.valueOf(3)); // 従来のやり方。
list.add(new Integer(10000)); // 従来のやり方。

上記のプログラムコードにおいて、int型の値は、listに追加されるとき自動的にIntegerオブジェクトにラップされてから追加される。すなわち、以下のプログラムコードと等価である。

int x = 1;
List<Integer> list = new ArrayList<Integer>();
list.add(Integer.valueOf(x));
list.add(Integer.valueOf(2));
list.add(Integer.valueOf(3));
list.add(new Integer(10000));

関連項目[編集]

外部リンク[編集]

  • JSR 201 Extending the Java Programming Language with Enumerations, Autoboxing, Enhanced for loops and Static Import (J2SE 5.0)