ボクシング(Boxing)/アンボクシング(Unboxing)

ボクシング/アンボクシングは、プリミティブ型の値とプリミティブ型に対応するラッパークラスの値を変換する処理のことをです。

ボクシング/アンボクシングについて

プリミティブ型をラッパークラス型に変換することをボクシング(Boxing)、
ラッパークラス型をプリミティブ型に変換することをアンボクシング(Unboxing)と呼びます。

オートボクシングについて

ボクシング、アンボクシングはJava SE5より前のバージョンでは明示的に型変換をする必要がありましたが、Java SE5以降では代入するだけで自動的に行うことができるようになりました。
この仕組みをオートボクシング(Auto-Boxing)と呼びます。

プリミティブ型とラッパークラスの対応表

プリミティブ型とラッパークラスの対応は以下のようになっています。

【プリミティブ型とラッパークラスの対応表】
プリミティブ型ラッパークラス
bytejava.lang.Byte
shortjava.lang.Short
intjava.lang.Integer
longjava.lang.Long
floatjava.lang.Float
doublejava.lang.Double
booleanjava.lang.Boolean
charjava.lang.Character

ボクシング(Boxing)のサンプル

以下は明示的にボクシングを行う例です。

(明示的なボクシングの例)

int num = 123;

//int型の値をInteger型に変換する
Integer boxedInt1 = Integer.valueOf(num);

以下はオートボクシングを使用した例です

(オートボクシングの例)※Java SE5以降で使用可

int num = 123;

//int型の値をInteger型に変換する(オートボクシング)
Integer boxedInt2 = num;

アンボクシング(Unboxing)のサンプル

以下は明示的にアンボクシングを行う例です。

(明示的なアンボクシングの例)

Integer integerValue = Integer.valueOf(123);

//Integer型の値をint型に変換する(アンボクシング)
int val = integerValue.intValue();

以下はオートボクシングを使用した例です

(オートボクシングの例)※Java SE5以降で使用可

Integer boxedNum = 123;

//Integer型の値をint型に変換する(オートボクシング)
int num = boxedNum;

コメント

タイトルとURLをコピーしました