Javaのラッパークラスについてです。
目次
仕組み | ラッパークラスとは |
変換する | 基本型からラッパーオブジェクトに変換する |
ラッパーオブジェクトから基本型に変換する |
ラッパークラスとは
- ラッパークラスはデータ型の基本型に「メソッド」等が付いてオブジェクトとして使用できる「クラス」です。
- 例として基本型のintに対してのラッパークラスのIntegerがあります。(下表参照)
- ラッパー(≒wrap)は、包むという意味です。
- 基本型とラッパークラスをどちらでも使える場面では基本型を使用します。
ラッパークラスはオブジェクトの生成が行われるので性能の観点とまたnull値の考慮も必要のためです。 - 基本型は先頭が小文字、ラッパークラスは先頭が大文字です。
- クラスですが、Integer i = 100;のように値をセットできます。
→ Integer i = new Integer(100)は不要
基本型 | ラッパークラス |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
boolean | Boolean |
char | Character |
ラッパークラスの使用例
ArrayListなどのコレクションは、ラッパークラスのみ使用できます。基本型は使用できません。
List<Integer> Num1 = new ArrayList<>();
Num1.add(1);
1行目は、Integerを指定しています。
基本型からラッパーオブジェクトに変換する
基本型からラッパーオブジェクトへの変換は以下の方法があります。
- 方法1:ボクシング変換を使う。ボクシング変換とは、基本型からラッパーオブジェクトへの変換が自動的に行われることです。
- 方法2:IntegerクラスのvalueOfメソッドを使う。
- 方法3:Integerクラスのコンストラクタを使う。
基本型からラッパーオブジェクトへの変換するサンプルです。
package test1;
public class Test1 {
public static void main(String[] args) {
int num = 1;
// 方法1:ボクシング変換
Integer a = num;
// 方法2:メソッドを使う
Integer b = Integer.valueOf(num);
// 方法3:コンストラクタを使う
Integer c = new Integer(num);
}
}
9行目は、ボクシング変換で基本型からラッパーオブジェクトへ変換しています。
12行目は、IntegerクラスのvalueOfメソッドで基本型からラッパーオブジェクトへ変換しています。
15行目は、Integerクラスのコンストラクタで基本型からラッパーオブジェクトへ変換しています。
15行目のコンストラクタを使う方法は、Java9以降ではDeprecated(非推奨)です。
ラッパーオブジェクトから基本型に変換する
ラッパーオブジェクトから基本型へ変換は以下の方法があります。
- 方法1:アンボクシング変換を使う。アンボクシング変換とは、ラッパーオブジェクトから基本型への変換が自動的に行われることです。
- 方法2:IntegerクラスのintValueメソッドを使う。
ラッパーオブジェクトから基本型への変換するサンプルです。
package test1;
public class Test1 {
public static void main(String[] args) {
Integer num = 1;
// 方法1:アンボクシング変換
int a = num;
// 方法2:メソッドを使う
int b = num.intValue();
}
}
9行目は、アンボクシング変換でラッパーオブジェクトから基本型へ変換しています。
12行目は、IntegerクラスのintValueメソッドでラッパーオブジェクトから基本型へ変換しています。
関連の記事