Loading AI tools
ウィキペディアから
プリミティブラッパークラス (英: primitive wrapper class) とは、Javaにおける、プリミティブ型をラップするjava.lang
パッケージが提供する8つのクラスのこと。プリミティブラッパークラスは不変であり、オブジェクト指向のメソッドを提供する。
Javaにおけるプリミティブ型はオブジェクト型ではなく、そのままではオブジェクトとして扱うことができない。プリミティブラッパークラスはプリミティブ型の値に対応したObject
が必要なときにそれを表すものとして使われている。ラッパークラスはjava.util
パッケージにあるCollection
クラス群、java.lang.reflect
パッケージにあるリフレクション用クラス群とともに広く使われている。
プリミティブ型の値からラッパーオブジェクトに変換することを「ボックス化」(ボクシング)、ラッパーオブジェクトからプリミティブ型の値に変換することを「ボックス化解除」(アンボクシング)と呼ぶ。
Java SE 5.0からは、ラッパーオブジェクトとプリミティブ型の値との間の暗黙の変換機能として、プリミティブ型の値からラッパーオブジェクトに暗黙変換できる「自動ボックス化」(オートボクシング)と、ラッパーオブジェクトからプリミティブ型の値に暗黙変換できる「自動ボックス化解除」(オートアンボクシング)が導入された。
プリミティブラッパークラスとそれらに相当するプリミティブ型:
ラッパークラスByte
, Short
, Integer
, Long
, Float
, Double
はすべてNumber
のサブクラスである。
Javaには組み込みの符号無し整数型は存在しないが、プリミティブラッパークラスには、ビット列を符号無し整数とみなして扱うためのメソッドがいくつか用意されている(Integer.compareUnsigned(int, int)
とLong.compareUnsigned(long, long)
はJava 8以降、Byte.compareUnsigned(byte, byte)
とShort.compareUnsigned(short, short)
はJava 9以降)。
ラッパークラスではないが、Void
クラスは
それが戻り値の型がvoid
であるオブジェクト表現を提供するという点でよく似ている。
Void
クラスは
Java予約語 void
を表現するClass
オブジェクトへの参照を保持するためにjava.lang.reflect APIによって使われるインスタンス化できないプレースホルダークラスである。
Java 5.0では、java.util.concurrent.atomic
パッケージにラッパークラスが新たに追加された。
これらのクラスは可変であり、正規のラッパークラスの代替としては使うことができない。
その代わりに、それらは加算、インクリメント、代入についての不可分操作を提供する。
アトミッククラスとそれらに相当するプリミティブ型:
プリミティブ型 | ラッパークラス |
---|---|
int | AtomicInteger |
long | AtomicLong |
boolean | AtomicBoolean |
V | AtomicReference<V> |
クラスAtomicInteger
とAtomicLong
はNumber
クラスのサブクラスである。AtomicReference
クラスはオブジェクト参照の型を特定する型パラメータ V
を持つことができる。 (関連項目 "Java Generics" Javaにおける型パラメータの説明。) オブジェクト型がプリミティブ型でない場合でも、オブジェクトの参照はプリミティブ型であることに注意すること。
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.