オートボクシング
出典: フリー百科事典『ウィキペディア(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));
[編集] 関連項目
- ボックス化
- Java Community Process - Java技術の標準化プロセス
[編集] 外部リンク
- JSR 201 Extending the Java Programming Language with Enumerations, Autoboxing, Enhanced for loops and Static Import (J2SE 5.0)