Java ラッパークラス
1. Java ラッパークラスとは
Javaのラッパークラス(Wrapper Classes)は、int や boolean といったプリミティブデータ型をオブジェクトとして扱うための手段を提供します。
以下の表は、プリミティブ型とそれに対応するラッパークラスをまとめたものです。
| プリミティブデータ型 | ラッパークラス |
|---|---|
| byte | Byte |
| short | Short |
| int | Integer |
| long | Long |
| float | Float |
| double | Double |
| boolean | Boolean |
| char | Character |
2. ラッパークラスが必要なケース
開発において、ラッパークラスの使用が必須となる場面があります。例えば、ArrayList などのコレクション(Collection)オブジェクトを扱う場合です。コレクションにはプリミティブ型を直接格納できず、オブジェクトのみを格納できるという制約があるためです。
2.1 コード例:ArrayList での利用
// ArrayList<int> myNumbers = new ArrayList<int>(); // 無効(コンパイルエラー)
ArrayList<Integer> myNumbers = new ArrayList<Integer>(); // 有効3. ラッパーオブジェクトの作成
ラッパーオブジェクトを作成するには、プリミティブ型の代わりにラッパークラスを使用します。値を取得したい場合は、そのままオブジェクトを出力するだけで確認可能です。
3.1 コード例:オブジェクトの生成と出力
public class Main {
public static void main(String[] args) {
Integer myInt = 5;
Double myDouble = 5.99;
Character myChar = 'A';
System.out.println(myInt);
System.out.println(myDouble);
System.out.println(myChar);
}
}4. ラッパーオブジェクトのメソッド活用
ラッパークラスを使用することで、オブジェクトが持つ特定のメソッドを呼び出し、情報を取得したり操作したりできるようになります。
例えば、以下のメソッドは、対応するラッパーオブジェクトからプリミティブ値を取得するために使用されます:intValue(), byteValue(), shortValue(), longValue(), floatValue(), doubleValue(), charValue(), booleanValue()。
4.1 コード例:値取得メソッドの使用
以下の例は、前述のサンプルと同様の結果を出力します。
public class Main {
public static void main(String[] args) {
Integer myInt = 5;
Double myDouble = 5.99;
Character myChar = 'A';
System.out.println(myInt.intValue());
System.out.println(myDouble.doubleValue());
System.out.println(myChar.charValue());
}
}5. toString() メソッドによる文字列変換
もう一つ非常に便利なのが toString() メソッドです。これはラッパーオブジェクトを文字列(String)に変換するために使用されます。
以下の例では、Integer を String に変換し、String クラスの length() メソッドを使用してその「文字列」の長さを出力しています。
5.1 コード例:数値から文字列への変換
public class Main {
public static void main(String[] args) {
Integer myInt = 100;
String myString = myInt.toString();
System.out.println(myString.length());
}
}