Java のプリミティブデータタイプのラッパークラス
Java のプリミティブデータ型のラッパークラスとは?
「Java のデータ型」では、主にプリミティブデータ型について説明しました。
プリミティブ primitive という言葉は「原始的な」とか「基本的な」という意味合いの言葉です。 例えば int 型がプリミティブなデータ型である、 というのは、そのデータ型を保持するだけのデータを確保して、それが変数を通して参照できるということです。
しかし場合によっては、同じ整数型を扱う場合でも、動的にデータ領域を確保して値を割り当てるなどの操作が必要なる場合もあります。
このとき、Java のランタイムは、元々プリミティブ型の int 型のデータを、Integer という名前のクラスのオブジェクトに置き換えて扱うことがあります。 これによってプリミティブなデータをオブジェクトとして扱うことができるようになります。
このような目的で用意されたクラスは、プリミティブデータ型のラッパークラス (wrapper class) と呼ばれます。
Java のラッパークラス
ラッパークラスは、それぞれのプリミティブタイプに対応して用意されています。
プリミティブ型 | ラッパークラス |
---|---|
boolean | Boolean |
byte | Byte |
char | Character |
float | Float |
int | Integer |
long | Long |
short | Short |
double | Double |
Java のオートボクシングとは?
プリミティブ型のデータは必要に応じて、ラッパークラスのオブジェクトに変換されます。こうした変換は自動的に行われます。
プリミティブ型のデータを、ラッパークラスのオブジェクトに自動的に変換することをオートボクシング (Autoboxing) といいます。
Java のアンボクシングとは?
逆にラッパークラスのオブジェクトを、プリミティブ型のデータに変換することをアンボクシング (Unboxing) といいます。
Java のラッパークラスの利用
オートボクシング、アンボクシングといった操作は、Java が自動的に実施することなので、開発者はあまり意識する必要はないでしょう。
ラッパークラスが特に便利なのは、型変換やパース (文字列解析) に役立つたくさんのメソッドが用意されているところです。
次の例では、 Integer.parseInt() メソッドを用いて文字列の数値を int 型として読み出しています。
int i = Integer.parseInt("123");
次の例では、int の 225 を HEX 文字列に変換して "1e" という文字列を取得しています。
Integer.toHexString(225); // "e1"
その他にも多数の便利な関数があります。