「ラッパークラス」は、基本型の値をラッピングする種々のクラスの総称です。ラッパークラスには、各基本型に対応した以下のようなものがあります。
基本型 | ラッパークラス |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
ラッパークラスは、対応する基本型を引数にして作成できます。
int i = 0; Integer i2 = new Integer(i);
ラッパークラスは、オブジェクト型を引数に取るメソッドで、基本型の値を使いたい時などに使用します。
int i = 0; ┏━━━━━┓ ┃Integer i2┃ = new Integer(i); ┗━━┯━━┛ └──────┐ ○使える ↓ void method(Object obj) { }
ラッパークラスでよく利用するメソッドは、「parseInt」や「valueOf」のように、文字列を解析して基本型の値として読み取るメソッドです。
Integer i1 = Integer.valueOf("99"); int i2 = Integer.parseInt("99");
「parse~」というメソッドでは基本型を戻し、「valueOf」ではラッパークラスを戻します。
ラッパークラスのオブジェクトは、そのまま基本型として使えます。その際は、対応した基本型に、暗黙的にキャストされます。こういった仕組みを「オートボクシング」と呼びます。
Integer i1 = new Integer(10); int i2 = 100 + i1; // i1は数値として処理される System.out.println(i2); // 「110」と出力
ラッパークラスのフィールドには、各基本型を使う上で有用な定数が用意されています。例えばIntegerでは、最大値や最小値が用意されています。
// 変数を初期化 long n = 9999999999l; // intの範囲外の数値 int i = 0; if (n > Integer.MAX_VALUE) { // intの最大値「2147483647」より大きい i = Integer.MAX_VALUE; } else if (n < Integer.MIN_VALUE) { // intの最小値「-2147483648」より小さい i = Integer.MIN_VALUE; } else { // intの値の範囲内 i = (int)n; } System.out.println(i); // 「2147483647」と出力
ラッパークラスは、java.langパッケージ内のクラスです。これらのドキュメントは、java.langパッケージのページからたどれます。