Javaのラッパークラスについて
コレクションクラスである。ListやMapへのデータの格納はオブジェクトしか格納できません。
List<int> list= new ArrayList <>(); // 基本型のためエラーとなります。 List<Integer> list= new ArrayList <>(); // ラッパークラスのためOK
上記1行目のListの生成はエラーとなります。
ラッパークラスはコレクションクラスへのデータの格納できるように用意されたクラスで「8つの基本データ型の情報を中身に保持すること」を責務としています。
Integer以外は最初の1文字を大文字に置き換えるだけであるので覚えやすいです。
基本データ型 | ラッパクラス |
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
オートボクシング:基本型からラッパークラスへの自動変換
基本型からラッパークラスへの自動変換のことを指します。
public static void main(String[] args) { List<Integer> list= new ArrayList <>(); int i1 = 1; int i2 = 2; list.add(i1); list.add(i2); System.out.println(list); } //実行結果 [1, 2]
Listへのデータの格納はオブジェクトしか格納できませんが、上記のプログラムでは、list.add(i1);、list.add(i2);でint型の数値を格納しています。
addでデータを格納する際に、基本型からラッパークラスへ自動変換されて格納しています。
アンボクシング:ラッパークラスから基本型への自動変換
public static void main(String[] args) { List<Integer> list= new ArrayList <>(); list.add(1); int i = list.get(0); System.out.println(i); } //実行結果 1
Listのデータの格納はラッパークラスのIntegerが格納されていますが、上記のプログラムでは、int型でデータを取得しています。
getでデータを格納する際に、ラッパークラスから基本型へ自動変換されて取り出していることによるものとなります。
コメントを残す