K-1やプライドに押されぎみのスポーツではない。
intなどのプリミティブ型をコレクションに置くことはできない。List.add(Object
obj)という引数であることから、オブジェクト参照だけを保持できるからだ。コレクションに置くためには適切なラッパークラス(intの場合は
Integerなど)に「詰める(box)」ことが必要になる。これをボクシングという。
逆に取り出す場合(unbox)はラッパークラスにキャストしてintValueなどのメソッドを使用して取り出さなければならない。
Java5.0ではこれらの作業を自動で行ってくれる。これをオートボクシングという。
使用例
int[] intArray = new int[]{1,2,3,4,5};
for(int i = 0; i < 10; i++){
// intからIntegerにオートボクシング
list.add(i);
// Integerからintにアンオートボクシング
list.get(i);
}
Documentには以下のようにある。
オートボクシング / アンボクシング機能は、参照型とプリミティブとの間に
「インピーダンス不整合」がある場合にだけ使用してください。
たとえば数値をコレクションに入力しなければならない場合です。
オートボクシング / アンボクシング機能を科学計算やパフォーマンスが重要な
数値コードに使用することは、適切ではありません。
なので注意が必要。