このJavaコードの例では、オートボクシングとアンボクシングが行われています。具体的には、基本データ型 int
を対応するラッパークラス Integer
に変換する場合(オートボクシング)、およびその逆(アンボクシング)の処理が含まれています。コードの内容を見てみましょう:
public class Sample {
public static void main(String[] args) {
int num = 10;
Integer val = Integer.valueOf(10);
System.out.println(num == val);
}
}
オートボクシングとアンボクシング
-
オートボクシング: 基本データ型から対応するラッパークラスへの自動変換。
- 例:
int
からInteger
へ - このコードの
Integer val = Integer.valueOf(10);
の部分では、オートボクシングが行われています。
- 例:
-
アンボクシング: ラッパークラスから基本データ型への自動変換。
- 例:
Integer
からint
へ - このコードの
System.out.println(num == val);
の部分では、val
がint
型にアンボクシングされています。
- 例:
オートボクシングとアンボクシングが行われる場合
- オートボクシングは、基本データ型の値がラッパークラスのオブジェクトに割り当てられるときに行われます。
- アンボクシングは、ラッパークラスのオブジェクトが基本データ型の値として使用されるときに行われます。
変換が行われずにエラーとなる場合
- ラッパークラスのオブジェクトが
null
の場合にアンボクシングを行うと、NullPointerException
がスローされます。- 例:
Integer val = null; int num = val;
はエラーとなります。
- 例:
このコードでは、num
は int
型、val
は Integer
型です。num == val
の比較では、val
がアンボクシングされて int
型に変換され、num
と同じ値であるため、結果は true
となります。
Top comments (0)