プリミティブラッパークラス () とは、Javaにおける、プリミティブ型をラップする パッケージが提供する8つのクラスのこと。プリミティブラッパークラスは不変であり、オブジェクト指向のメソッドを提供する。

Javaにおけるプリミティブ型はオブジェクト型ではなく、そのままではオブジェクトとして扱うことができない。プリミティブラッパークラスはプリミティブ型の値に対応したが必要なときにそれを表すものとして使われている。ラッパークラスはパッケージにあるクラス群、パッケージにあるリフレクション用クラス群とともに広く使われている。

プリミティブ型の値からラッパーオブジェクトに変換することを「ボックス化」(ボクシング)、ラッパーオブジェクトからプリミティブ型の値に変換することを「ボックス化解除」(アンボクシング)と呼ぶ。

Java SE 5.0からは、ラッパーオブジェクトとプリミティブ型の値との間の暗黙の変換機能として、プリミティブ型の値からラッパーオブジェクトに暗黙変換できる「自動ボックス化」(オートボクシング)と、ラッパーオブジェクトからプリミティブ型の値に暗黙変換できる「自動ボックス化解除」(オートアンボクシング)が導入された。

プリミティブラッパークラスとそれらに相当するプリミティブ型:

{| class="wikitable" ! プリミティブ型 !! ラッパークラス |- | byte || |- | short || |- | int || |- | long || |- | float || |- | double || |- | char || |- | boolean ||

ラッパークラスByte, Short, Integer, Long, Float, Double はすべてのサブクラスである。

Javaには組み込みの符号無し整数型は存在しないが、プリミティブラッパークラスには、ビット列を符号無し整数とみなして扱うためのメソッドがいくつか用意されている(とはJava 8以降、とはJava 9以降)。

Void ラッパークラスではないが、クラスは それが戻り値の型がvoidであるオブジェクト表現を提供するという点でよく似ている。 Voidクラスは Java予約語 void を表現するオブジェクトへの参照を保持するためにjava.lang.reflect APIによって使われるインスタンス化できないプレースホルダークラスである。

アトミッククラス

Java 5.0では、パッケージにラッパークラスが新たに追加された。 これらのクラスは可変であり、正規のラッパークラスの代替としては使うことができない。 その代わりに、それらは加算、インクリメント、代入についての不可分操作を提供する。

アトミッククラスとそれらに相当するプリミティブ型:

{| class="wikitable" ! プリミティブ型 !! ラッパークラス |- | int || |- | long || |- | boolean || |- | V ||

クラスAtomicIntegerとAtomicLongはNumberクラスのサブクラスである。AtomicReferenceクラスはオブジェクト参照の型を特定する型パラメータ Vを持つことができる。 (関連項目 "Java Generics" Javaにおける型パラメータの説明。) オブジェクト型がプリミティブ型でない場合でも、オブジェクトの参照はプリミティブ型であることに注意すること。

関連項目

java.lang java.lang.reflect Java Javaの文法