本サイトはプロモーション(広告)が含まれています。

Javaのラッパークラスについて(一覧と自動変換)

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でデータを格納する際に、ラッパークラスから基本型へ自動変換されて取り出していることによるものとなります。

Javaの記事一覧へ

PAGE TOP