Javaラッパークラス完全理解:型、変換、メリット
Java ラッパークラス
Java のラッパークラスを例を交えて学習します。
Java のラッパークラスは、プリミティブ型(int, char, float など)を対応するオブジェクト表現に変換します。
8 つのプリミティブ型それぞれに専用のラッパークラスが存在します。
| プリミティブ型 | ラッパークラス |
|---|---|
byte | Byte |
boolean | Boolean |
char | Character |
double | Double |
float | Float |
int | Integer |
long | Long |
short | Short |
プリミティブ型からラッパーオブジェクトへの変換
valueOf() メソッドを使って、プリミティブを明示的にラッパーオブジェクトに変換します。
例 1:プリミティブ型からラッパーオブジェクトへ
class Main {
public static void main(String[] args) {
int a = 5;
double b = 5.65;
Integer aObj = Integer.valueOf(a);
Double bObj = Double.valueOf(b);
if (aObj instanceof Integer) {
System.out.println("Integer オブジェクトが作成されました。");
}
if (bObj instanceof Double) {
System.out.println("Double オブジェクトが作成されました。");
}
}
}
出力
Integer オブジェクトが作成されました。 Double オブジェクトが作成されました。
上記コードは valueOf() による明示的変換を示しています。Java は オートボクシング もサポートしており、プリミティブが暗黙的にラップされます:
int a = 5;
Integer aObj = a;
double b = 5.6;
Double bObj = b;
詳細については オートボクシングとアンボクシング を参照してください。
注意: Java 9 以前ではコンストラクタ(例:new Integer(a))でもラッパーオブジェクトを作成できましたが、この方法は非推奨となりました。
ラッパーオブジェクトからプリミティブ型への変換
ラッパーオブジェクトから元のプリミティブ値を取り出すには、対応する …Value() メソッドを呼び出します。
例 2:ラッパーオブジェクトからプリミティブ型へ
class Main {
public static void main(String[] args) {
Integer aObj = Integer.valueOf(23);
Double bObj = Double.valueOf(5.55);
int a = aObj.intValue();
double b = bObj.doubleValue();
System.out.println("a の値: " + a);
System.out.println("b の値: " + b);
}
}
出力
a の値: 23 b の値: 5.55
Java は アンボクシング も自動的に行います:
Integer aObj = Integer.valueOf(2);
int a = aObj;
Double bObj = Double.valueOf(5.55);
double b = bObj;
詳細は オートボクシングとアンボクシング を参照してください。
ラッパークラスの利点
- コレクションがオブジェクトを要求する場合、ラッパークラスがプリミティブとオブジェクトの橋渡しをします。
// エラー ArrayList<int> list = new ArrayList<>(); // 正常動作 ArrayList<Integer> list = new ArrayList<>(); - ラッパーオブジェクトは
nullを保持でき、ヌル参照を可能にします。// エラー int a = null; // 正常動作 Integer a = null;
注意: プリミティブ型は一般的にオブジェクトより効率的です。パフォーマンスが重要な場面ではプリミティブを使用してください。
Java
- Javaのfinalキーワード完全解説:変数、メソッド、クラスでの活用法
- Java instanceof演算子完全ガイド:基本から継承・インターフェースまで
- Java継承のマスター:概念、種類、実践例
- Java Staticネストクラスの理解:用法、違い、実例
- Java無名インナークラス完全ガイド:定義、構文、実践例
- Javaシングルトンパターン完全解説:安全な実装と活用法
- Javaリフレクション完全ガイド:実行時のクラス・メソッド・フィールド検査
- Java ObjectOutputStream完全ガイド:シリアル化、メソッド、実践例
- Javaジェネリクス完全ガイド:再利用可能で型安全なコードの構築
- Javaファイル操作のマスター:java.ioによる作成・読み取り・書き込み・削除
- Javaラッパークラス完全理解:型、変換、メリット