English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
このチュートリアルでは、サンプルを用いてJavaの自動装箱とアンラップリングを学びます。
において自動装箱中、Javaコンパイラは自動的に原始型を対応する包装クラスオブジェクトに変換します。例えば、
int a = 56; // オートボックス Integer aObj = a;
Javaコレクションを使用する際には、オートボックス大きな利点があります。
import java.util.ArrayList; class Main { public static void main(String[] args) { ArrayList<Integer> list = new ArrayList<>(); //オートボックス list.add(5); list.add(6); System.out.println("ArrayList: " +" + list); } }
出力結果
ArrayList: [5, 6]
上記の例では、Integer型の配列リストを作成しました。したがって、配列リストはInteger型のオブジェクトのみを含むことができます。
この行に注意してください、
list.add(5);
ここでは、原始型の値を渡しますが、オートボックス、原始値は自動的にIntegerオブジェクトに変換され、配列リストに保存されます。
においてアンラップリング中、Javaコンパイラは自動的に包装クラスオブジェクトを対応する原始型に変換します。例えば、
// オートボックス Integer aObj = 56; // アンボックス int a = aObj;
のような自動ボックス同様に、アンボックスJavaコレクションとともに使用することもできます。
import java.util.ArrayList; class Main { public static void main(String[] args) { ArrayList<Integer> list = new ArrayList<>(); //オートボックス list.add(5); list.add(6); System.out.println("ArrayList: " +" + list); // アンボックス int a = list.get(0); System.out.println("インデックス0の値: " +" + a); } }
出力結果
ArrayList: [5, 6] インデックス0の値: 5
上記の例では、以下の行に注意してください:
int a = list.get(0);
ここでは、get()メソッドはインデックス0の場所のオブジェクトを返しますが、アンボックス、オブジェクトは自動的に基本型intに変換され変数aに割り当てられます。