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
オートボクシング/アンボクシングでは以下のように変換されます。
型 | ラッパークラス | |
---|---|---|
byte | ⇔ | Byte |
short | ⇔ | Short |
int | ⇔ | Integer |
long | ⇔ | Long |
float | ⇔ | Float |
double | ⇔ | Double |
char | ⇔ | Character |
boolean | ⇔ | Boolean |