Java ラッパー クラス
Java ラッパー クラス
このチュートリアルでは、例を使って Java Wrapper クラスについて学びます。
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) {
// create primitive types
int a = 5;
double b = 5.65;
//converts into wrapper objects
Integer aObj = Integer.valueOf(a);
Double bObj = Double.valueOf(b);
if(aObj instanceof Integer) {
System.out.println("An object of Integer is created.");
}
if(bObj instanceof Double) {
System.out.println("An object of Double is created.");
}
}
}
出力
An object of Integer is created. An object of Double is created.
上記の例では、valueOf()
を使用しています。 プリミティブ型をオブジェクトに変換するメソッド
ここでは、instanceof
を使用しました。 生成されたオブジェクトが Integer
であるかどうかをチェックする演算子 または Double
ただし、Java コンパイラはプリミティブ型を対応するオブジェクトに直接変換できます。たとえば、
int a = 5;
// converts into object
Integer aObj = a;
double b = 5.6;
// converts into object
Double bObj = b;
このプロセスは、オート ボクシングとして知られています。 .詳細については、Java オートボクシングとアンボクシングをご覧ください。
注意 :Wrapper
を使用してプリミティブ型をラッパー オブジェクトに変換することもできます クラス コンストラクター。ただし、Java 9 以降ではコンストラクターの使用は破棄されます。
ラッパー オブジェクトをプリミティブ型に
オブジェクトをプリミティブ型に変換するには、対応する値メソッド (intValue()
、 doubleValue()
など) 各ラッパー クラスに存在します。
例 2:ラッパー オブジェクトをプリミティブ型にする
class Main {
public static void main(String[] args) {
// creates objects of wrapper class
Integer aObj = Integer.valueOf(23);
Double bObj = Double.valueOf(5.55);
// converts into primitive types
int a = aObj.intValue();
double b = bObj.doubleValue();
System.out.println("The value of a: " + a);
System.out.println("The value of b: " + b);
}
}
出力
The value of a: 23 The value of b: 5.55
上記の例では、intValue()
を使用しています。 そして doubleValue()
Integer
を変換するメソッド と Double
オブジェクトを対応するプリミティブ型に変換します。
ただし、Java コンパイラは、オブジェクトを対応するプリミティブ型に自動的に変換できます。たとえば、
Integer aObj = Integer.valueOf(2);
// converts into int type
int a = aObj;
Double bObj = Double.valueOf(5.55);
// converts into double type
double b = bObj;
このプロセスは開梱と呼ばれます .詳細については、Java オートボクシングとアンボクシングをご覧ください。
ラッパー クラスの利点
- Java では、プリミティブ データ型の代わりにオブジェクトを使用する必要がある場合があります。たとえば、コレクションの操作中。
// error ArrayList<int> list = new ArrayList<>(); // runs perfectly ArrayList<Integer> list = new ArrayList<>();
- ラッパー オブジェクトに null 値を格納できます。たとえば、
// generates an error int a = null; // runs perfectly Integer a = null;
注意 :プリミティブ型は、対応するオブジェクトよりも効率的です。したがって、効率が必要な場合は、常にプリミティブ型が推奨されます。
Java