public interface ReferenceType extends Type, Comparable<ReferenceType>, Accessible
ClassType
、インタフェースの InterfaceType
、配列の ArrayType
のいずれかのサブインタフェースに属します。プリミティブクラス (Integer.TYPE
の reflected type
など) は、ClassType として表されることに注意してください。VM はこれら 3 つの型のどの場合も Class オブジェクトを生成するため、VM から見ると、各 ReferenceType は個別の Class オブジェクトにマッピングされます。
ReferenceType を取得するには、特定の ObjectReference
にその型を照会するか、VirtualMachine
からすべての参照型のリストを取得します。
ReferenceType を使用して、メソッドやフィールドなどの静的な型の情報、または対応する Class オブジェクトやクラスローダーなどの動的な型の情報にアクセスすることができます。
ターゲット VM が切断された場合、ReferenceType
を直接的または間接的にパラメータとして取る ReferenceType
上の任意のメソッドは、VMDisconnectedException
をスローし、VMDisconnectEvent
が EventQueue
から読み出せるようになります。
ReferenceType
を直接的または間接的にパラメータとして取る ReferenceType
上の任意のメソッドは、ターゲット VM のメモリーが不足すると VMOutOfMemoryException
をスローします。
ReferenceType
を直接的または間接的にパラメータに取る ReferenceType
上の任意のメソッドは、ミラーされた型がアンロードされた場合に ObjectCollectedException
をスローします。
ObjectReference
, ObjectReference.referenceType()
, VirtualMachine
, VirtualMachine.allClasses()
修飾子と型 | メソッドと説明 |
---|---|
List<Field> |
allFields()
この型、そのスーパークラス、実装インタフェース、およびスーパーインタフェース、またはそのいずれかで宣言された各
Field を含むリストを返します。 |
List<Location> |
allLineLocations()
この参照型内の各実行可能ソース行の
Location オブジェクトを含むリストを返します。 |
List<Location> |
allLineLocations(String stratum, String sourceName)
この参照型内の各実行可能ソース行の
Location オブジェクトを含むリストを返します。 |
List<Method> |
allMethods()
この型、そのスーパークラス、実装インタフェース、およびスーパーインタフェース、またはそのいずれかで宣言された各
Method を含むリストを返します。 |
List<String> |
availableStrata()
この参照型で利用可能な層を返します。
|
ClassLoaderReference |
classLoader()
この型に対応するクラスをロードしたクラスローダーのオブジェクトを取得します。
|
ClassObjectReference |
classObject()
ターゲット VM 内でこの型に対応するクラスオブジェクトを返します。
|
byte[] |
constantPool()
「Java 仮想マシン仕様」のクラスファイル形式の説明に記載されている constant_pool 項目の形式で、定数プールの raw バイト数を返します。
|
int |
constantPoolCount()
定数プール内のエントリ数に 1 を加えた値を返します。
|
String |
defaultStratum()
この参照型のデフォルト層を返します。
|
boolean |
equals(Object obj)
指定された Object とこの ReferenceType が等しいかどうかを比較します。
|
boolean |
failedToInitialize()
このクラスの初期化が失敗したかどうかを判定します。
|
Field |
fieldByName(String fieldName)
指定されたあいまいでない名前で、可視
Field を検索します。 |
List<Field> |
fields()
この型で宣言された各
Field を含むリストを返します。 |
String |
genericSignature()
存在する場合は、この型のジェネリックシグニチャーを取得します。
|
Value |
getValue(Field field)
|
Map<Field,Value> |
getValues(List<? extends Field> fields)
|
int |
hashCode()
この ObjectReference のハッシュコード値を返します。
|
List<ObjectReference> |
instances(long maxInstances)
この ReferenceType のインスタンスを返します。
|
boolean |
isAbstract()
この型が abstract として宣言されたかどうかを判定します。
|
boolean |
isFinal()
この型が final として宣言されたかどうかを判定します。
|
boolean |
isInitialized()
この型が初期化されているかどうかを判定します。
|
boolean |
isPrepared()
この型が準備されているかどうかを判定します。
|
boolean |
isStatic()
この型が static として宣言されたかどうかを判定します。
|
boolean |
isVerified()
この型が検証されているかどうかを判定します。
|
List<Location> |
locationsOfLine(int lineNumber)
指定された行番号にマッピングされたすべての
Location オブジェクトを含むリストを返します。 |
List<Location> |
locationsOfLine(String stratum, String sourceName, int lineNumber)
指定された行番号にマッピングされたすべての
Location オブジェクトを含むリストを返します。 |
int |
majorVersion()
「Java 仮想マシン仕様」のクラスファイル形式の説明に定義されているように、クラスのメジャーバージョン番号を返します。
|
List<Method> |
methods()
この型で直接宣言された各
Method を含むリストを返します。 |
List<Method> |
methodsByName(String name)
指定された名前を持つ各可視
Method を含むリストを返します。 |
List<Method> |
methodsByName(String name, String signature)
指定された名前とシグニチャーを持つ各可視
Method を含むリストを返します。 |
int |
minorVersion()
「Java 仮想マシン仕様」のクラスファイル形式の説明に定義されているように、クラスのマイナーバージョン番号を返します。
|
String |
name()
この型の完全指定名を取得します。
|
List<ReferenceType> |
nestedTypes()
この型内に宣言され、現在仮想マシンにロードされている
ReferenceType オブジェクトを含むリストを返します。 |
String |
sourceDebugExtension()
この型のソースデバッグ拡張機能を取得します。
|
String |
sourceName()
この型の宣言に対応するソースの識別名を取得します。
|
List<String> |
sourceNames(String stratum)
この型の宣言に対応するすべてのソースの識別名を取得します。
|
List<String> |
sourcePaths(String stratum)
この型の宣言に対応するすべてのソースのパスを取得します。
|
List<Field> |
visibleFields()
この型内の非表示でなくあいまいでない各
Field を含むリストを返します。 |
List<Method> |
visibleMethods()
この型によって宣言された、またはこの型に継承された各
Method を含むリストを返します。 |
toString, virtualMachine
compareTo
isPackagePrivate, isPrivate, isProtected, isPublic, modifiers
String name()
プリミティブクラスの場合、返される名前は対応するプリミティブ型の名前です。たとえば、Integer.TYPE
によって表されるクラスの名前は「int」として返されます。
String genericSignature()
null
。ClassLoaderReference classLoader()
ClassLoaderReference
。クラスがブートストラップクラスローダーによってロードされた場合は null
。String sourceName() throws AbsentInformationException
戻り値のソース名は、VM のデフォルト層 (VirtualMachine.getDefaultStratum()
) に応じて変わります。リファレンス実装では、基底層を使用する場合、この型の宣言が含まれているソースファイルの非修飾名が文字列として返されます。その他の層の場合、その層の 1 番目のソース名が返されます。Java 以外のプログラミング言語では、1 つの参照型に対して複数のソースファイルが存在する可能性があるため、Location.sourceName()
または sourceNames(String)
を使用することをお勧めします。
配列 (ArrayType
) およびプリミティブクラスの場合、常に AbsentInformationException がスローされます。
AbsentInformationException
- ソース名が不明の場合List<String> sourceNames(String stratum) throws AbsentInformationException
返される名前は、指定された層の名前です。層の詳細は、Location
を参照してください。リファレンス実装では、Java プログラミング言語層を使用する場合、返される List に含まれる要素は、String 要素 (この型の宣言が含まれているソースファイルの非修飾名) だけになります。その他の層を使用する場合、その層で定義されているすべてのソース名が返されます。
stratum
- 情報取得元の層。宣言する型のデフォルト層を使用する場合は null
。AbsentInformationException
- ソース名が不明の場合。
配列 (ArrayType
) およびプリミティブクラスの場合、常に AbsentInformationException がスローされます。
List<String> sourcePaths(String stratum) throws AbsentInformationException
返されるパスは、指定された層のパスです。層の詳細は、Location
を参照してください。リファレンス実装では、Java プログラミング言語層のようにソースパスを明示的に指定しない層の場合、ReferenceType のパッケージ名をプラットフォーム固有のパス名に変換した結果に sourceNames(String)
を付加した文字列が返されます。たとえば、Windows プラットフォームの場合、java.lang.Thread
は 1 つの要素 "java\lang\Thread.java"
を含む List を返します。
stratum
- 情報取得元の層。宣言する型のデフォルト層を使用する場合は null
。AbsentInformationException
- ソース名が不明の場合。
配列 (ArrayType
) およびプリミティブクラスの場合、常に AbsentInformationException がスローされます。
String sourceDebugExtension() throws AbsentInformationException
この操作は、ターゲット仮想マシンでサポートされていないことがあります。この操作がサポートされているかどうかを確認するには、canGetSourceDebugExtension()
を使用します。
AbsentInformationException
- 拡張が指定されていない場合UnsupportedOperationException
- ターゲット仮想マシンでこの操作がサポートされていない場合。canGetSourceDebugExtension()
を参照boolean isStatic()
false
が返されます。true
、それ以外の場合は false。boolean isAbstract()
配列 (ArrayType
) およびプリミティブクラスの場合、戻り値は未定義です。
true
、それ以外の場合は false。boolean isFinal()
配列 (ArrayType
) およびプリミティブクラスの場合、戻り値は常に true です。
true
、それ以外の場合は false。boolean isPrepared()
配列 (ArrayType
) およびプリミティブクラスの場合、戻り値は未定義です。
true
、それ以外の場合は false。boolean isVerified()
配列 (ArrayType
) およびプリミティブクラスの場合、戻り値は未定義です。
true
、それ以外の場合は false。boolean isInitialized()
InterfaceType
の場合、このメソッドは常に isPrepared()
と同じ値を返します。
配列 (ArrayType
) およびプリミティブクラスの場合、戻り値は未定義です。
true
、それ以外の場合は false。boolean failedToInitialize()
配列 (ArrayType
) およびプリミティブクラスの場合、戻り値は未定義です。
true
、それ以外の場合は false。List<Field> fields()
Field
を含むリストを返します。継承したフィールドは含まれません。コンパイラによって作成された合成フィールドがある場合は、そのフィールドもこのリストに含まれます。
配列 (ArrayType
) およびプリミティブクラスの場合、常に空のリストが返されます。
Field
オブジェクトの List。フィールドが存在しない場合は、リストの長さはゼロになる。ClassNotPreparedException
- このクラスがまだ準備されていない場合。List<Field> visibleFields()
Field
を含むリストを返します。ただし、隠しフィールドおよびあいまいなフィールドは含まれません。このクラスまたはそのインスタンスから、単純名でアクセスできる各フィールドが含まれます。あいまいに多重継承されたフィールド、つまりあとで継承されたクラスの同じ名前のフィールドによって隠されたフィールドには、単純名でアクセスすることはできません。このようなフィールドは、返されるリストにも含まれません。その他の継承されたフィールドは、すべてこのリストに含まれます。詳細は、「Java 言語仕様」のセクション 8.3 を参照してください。
配列 (ArrayType
) およびプリミティブクラスの場合、常に空のリストが返されます。
Field
オブジェクトの List。可視フィールドが存在しない場合は、リストの長さはゼロになる。ClassNotPreparedException
- このクラスがまだ準備されていない場合。List<Field> allFields()
Field
を含むリストを返します。隠しフィールドおよび多重継承されたフィールドを含め、宣言されたフィールドおよび継承されたフィールドをすべて返します。
配列 (ArrayType
) およびプリミティブクラスの場合、常に空のリストが返されます。
Field
オブジェクトの List。フィールドが存在しない場合は、リストの長さはゼロになる。ClassNotPreparedException
- このクラスがまだ準備されていない場合。Field fieldByName(String fieldName)
Field
を検索します。このメソッドは、「Java 言語仕様」のセクション 8.3.3 に指定された継承規則に従って可視性を判断します。
配列 (ArrayType
) およびプリミティブクラスの場合、戻り値は常に null です。
fieldName
- 目的のフィールドの名前を含む文字列。Field
オブジェクト。指定の名前のフィールドがない場合、または指定の名前があいまいな場合は null。ClassNotPreparedException
- このクラスがまだ準備されていない場合。List<Method> methods()
Method
を含むリストを返します。継承されたメソッドは、含まれません。このリストには、コンストラクタ、初期化メソッド (ある場合)、およびコンパイラによって作成された合成メソッドが含まれます。
配列 (ArrayType
) およびプリミティブクラスの場合、常に空のリストが返されます。
Method
オブジェクトのリスト。メソッドが存在しない場合は、リストの長さはゼロになる。ClassNotPreparedException
- このクラスがまだ準備されていない場合。List<Method> visibleMethods()
Method
を含むリストを返します。隠されたまたはオーバーライドされた、スーパークラスまたはスーパーインタフェースからのメソッドは含まれません。
ただし返されるリストには、同じシグニチャーを持つ多重継承メソッドが含まれることがありますが、ClassType
のメンバーが複数含まれることはありません。詳細は、Java 言語仕様のセクション 8.4.6 を参照してください。
配列 (ArrayType
) およびプリミティブクラスの場合、常に空のリストが返されます。
Method
オブジェクトの List。可視メソッドが存在しない場合は、リストの長さはゼロになる。ClassNotPreparedException
- このクラスがまだ準備されていない場合。List<Method> allMethods()
Method
を含むリストを返します。隠しメソッドおよびオーバーライドされたメソッドを含め、宣言されたメソッドおよび継承されたメソッドをすべて返します。
配列 (ArrayType
) およびプリミティブクラスの場合、常に空のリストが返されます。
Method
オブジェクトのリスト。メソッドが存在しない場合は、リストの長さはゼロになる。ClassNotPreparedException
- このクラスがまだ準備されていない場合。List<Method> methodsByName(String name)
Method
を含むリストを返します。オーバーロードされたメソッドを検索するときによく使用します。
オーバーライドされたメソッドおよび隠されたメソッドは、含まれません。詳細は、「Java 言語仕様」のセクション 8.4.6 を参照してください。
配列 (ArrayType
) およびプリミティブクラスの場合、常に空のリストが返されます。
name
- 検索対象のメソッドの名前。Method
オブジェクトの List。一致するメソッドが見つからない場合は、リストの長さはゼロになる。ClassNotPreparedException
- このクラスがまだ準備されていない場合。List<Method> methodsByName(String name, String signature)
Method
を含むリストを返します。シグニチャー文字列は、ターゲットメソッドの JNI シグニチャーです。
()V
([Ljava/lang/String;)V
(IIII)Z
このリストには、ClassType
の構成要素である具象メソッドが複数含まれることはありません。このリスト内のその他のメソッドは、abstract メソッドです。一致する具象メソッドだけを取得するには、ClassType.concreteMethodByName(java.lang.String, java.lang.String)
を使用します。
配列 (ArrayType
) およびプリミティブクラスの場合、常に空のリストが返されます。
name
- 検索対象のメソッドの名前。signature
- 検索対象のメソッドのシグニチャーMethod
オブジェクトの List。一致するメソッドが見つからない場合は、リストの長さはゼロになる。ClassNotPreparedException
- このクラスがまだ準備されていない場合。List<ReferenceType> nestedTypes()
ReferenceType
オブジェクトを含むリストを返します。静的な入れ子になった型と、静的でない入れ子になった型 (つまり、内部型) の両方が含まれます。この参照型内のコードブロックに宣言されたローカル内部型も、返されるリストに含まれます。
配列 (ArrayType
) およびプリミティブクラスの場合、常に空のリストが返されます。
ReferenceType
オブジェクトの List。入れ子になった型がない場合は、リストの長さはゼロになる。Value getValue(Field field)
Field
の Value
を取得します。Field は、この型に対して有効である必要があります。つまり、Field は、この型、スーパークラス、スーパーインタフェース、または実装インタフェースで宣言されている必要があります。field
- 要求された値を含むフィールドValue
。IllegalArgumentException
- フィールドがこのオブジェクトのクラスにとって有効でない場合。Map<Field,Value> getValues(List<? extends Field> fields)
Field
の Value
を含むマップを返します。Field は、この型に対して有効である必要があります。つまり、Field は、この型、スーパークラス、スーパーインタフェース、または実装インタフェースで宣言されている必要があります。fields
- 要求された値を含む Field
オブジェクトのリスト。Value
を含む、要求された Field
オブジェクトのマップ。IllegalArgumentException
- このオブジェクトのクラスにとって無効なフィールドがある場合。VMMismatchException
- Mirror
引数とこのミラーが同じ VirtualMachine
に属さない場合。ClassObjectReference classObject()
ClassObjectReference
。List<Location> allLineLocations() throws AbsentInformationException
Location
オブジェクトを含むリストを返します。
このメソッドは、allLineLocations(vm.getDefaultStratum(),null)
と同等です (詳細は allLineLocations(String,String)
を参照)。
AbsentInformationException
- このクラスに対する行番号情報がなく、かつこのクラスの実行可能メンバーとして非 native で非 abstract なものが含まれる場合。ClassNotPreparedException
- このクラスがまだ準備されていない場合。List<Location> allLineLocations(String stratum, String sourceName) throws AbsentInformationException
Location
オブジェクトを含むリストを返します。各位置では、特定のソース行がコードインデックスの特定の範囲にマップされています。この範囲の開始点は、Location.codeIndex()
によって調べることができます。返されるリストには、特定の行番号に対して複数の位置が含まれる可能性がありますが、これは、コンパイラや VM が特定の行を、連続していない複数のコードインデックス範囲へマッピングする場合があるからです。同じソース行が、複数のメソッド間で、異なるコードインデックスの範囲にマップされていることがあります。
配列 (ArrayType
) およびプリミティブクラスの場合、常に空のリストが返されます。インタフェース (InterfaceType
) の場合、返されるリストが空にならないのは、そのインタフェースのクラス初期化に実行可能コードが含まれている場合だけです。
返されるリストは、指定された層のリストです。層の詳細は、Location
を参照してください。
stratum
- 情報取得元の層。defaultStratum()
を使う場合は null
。sourceName
- 特定のソースファイル内の位置だけを取得する場合はそのファイル名、そうでない場合は null
。Location
オブジェクトのリスト。AbsentInformationException
- このクラスに対する行番号情報がなく、かつこのクラスの実行可能メンバーとして非 native で非 abstract なものが含まれる場合。または sourceName が null
でないのにソース名情報が存在しない場合。ClassNotPreparedException
- このクラスがまだ準備されていない場合。List<Location> locationsOfLine(int lineNumber) throws AbsentInformationException
Location
オブジェクトを含むリストを返します。
このメソッドは、locationsOfLine(vm.getDefaultStratum(), null, lineNumber)
と同等です (詳細は locationsOfLine(java.lang.String,java.lang.String,int)
を参照)。
lineNumber
- 行番号Location
オブジェクトのリスト。AbsentInformationException
- このクラスに対する行番号情報がない場合。ClassNotPreparedException
- このクラスがまだ準備されていない場合。VirtualMachine.getDefaultStratum()
List<Location> locationsOfLine(String stratum, String sourceName, int lineNumber) throws AbsentInformationException
Location
オブジェクトを含むリストを返します。
配列 (ArrayType
) およびプリミティブクラスの場合、常に空のリストが返されます。インタフェース (InterfaceType
) の場合、返されるリストが空にならないのは、そのインタフェースのクラス初期化時、指定の行番号に実行可能コードが含まれている場合だけです。指定された行番号の位置に実行可能コードが存在しない場合は、空のリストが返されます。
返されるリストは、指定された層のリストです。層の詳細は、Location
を参照してください。
stratum
- 行番号とソース名の比較に使う層。defaultStratum()
を使う場合は null
。sourceName
- 行番号を含むソース名。すべてのソース名に一致させる場合は null
lineNumber
- 行番号Location
オブジェクトのリスト。AbsentInformationException
- このクラスに対する行番号情報がない場合。または sourceName が null
でないのにソース名情報が存在しない場合。ClassNotPreparedException
- このクラスがまだ準備されていない場合。List<String> availableStrata()
層については、Location
を参照してください。
java.lang.String
の ListString defaultStratum()
"Java"
) が返されます。
層については、Location
を参照してください。
List<ObjectReference> instances(long maxInstances)
この操作は、ターゲット仮想マシンでサポートされていないことがあります。この操作がサポートされているかどうかを確認するには、VirtualMachine.canGetInstanceInfo()
を使用します。
maxInstances
- 返されるインスタンスの最大数。負でない数値。ゼロの場合、すべてのインスタンスが返される。ObjectReference
オブジェクトのリスト。この ReferenceType のインスタンスが存在しない場合は、長さゼロのリストを返す。UnsupportedOperationException
- ターゲット仮想マシンがこの操作をサポートしていない場合 (次を参照)。 canGetInstanceInfo()
IllegalArgumentException
- maxInstances がゼロ未満の場合。VirtualMachine.instanceCounts(List)
, ObjectReference.referringObjects(long)
boolean equals(Object obj)
equals
、クラス: Object
obj
- 比較対象の参照オブジェクト。ReferenceType
である場合、両方の ReferenceType が同じ VM に属している場合、およびその VM の java.lang.Class の同じインスタンスに対応するクラスが ReferenceType によってミラー化されている場合は true。Object.hashCode()
, HashMap
int hashCode()
hashCode
、クラス: Object
Object.equals(java.lang.Object)
, System.identityHashCode(java.lang.Object)
int majorVersion()
ArrayType
) およびプリミティブクラスの場合、返されるメジャーバージョン番号はゼロです。
この操作は、ターゲット仮想マシンでサポートされていないことがあります。この操作がサポートされているかどうかを確認するには、VirtualMachine.canGetClassFileVersion()
を使用します。UnsupportedOperationException
- ターゲット仮想マシンがこの操作をサポートしていない場合 (次を参照)。canGetClassFileVersion()
int minorVersion()
ArrayType
) およびプリミティブクラスの場合、返されるマイナーバージョン番号はゼロです。
この操作は、ターゲット仮想マシンでサポートされていないことがあります。この操作がサポートされているかどうかを確認するには、VirtualMachine.canGetClassFileVersion()
を使用します。UnsupportedOperationException
- ターゲット仮想マシンがこの操作をサポートしていない場合 (次を参照)。canGetClassFileVersion()
int constantPoolCount()
ArrayType
) およびプリミティブクラスの場合、返される定数プール数の値はゼロです。
この操作は、ターゲット仮想マシンでサポートされていないことがあります。この操作がサポートされているかどうかを確認するには、VirtualMachine.canGetConstantPool()
を使用します。UnsupportedOperationException
- ターゲット仮想マシンがこの操作をサポートしていない場合 (次を参照)。canGetConstantPool()
constantPool()
byte[] constantPool()
ArrayType
) およびプリミティブクラスの場合、長さがゼロのバイト配列が返されます。
この操作は、ターゲット仮想マシンでサポートされていないことがあります。この操作がサポートされているかどうかを確認するには、VirtualMachine.canGetConstantPool()
を使用します。UnsupportedOperationException
- ターゲット仮想マシンがこの操作をサポートしていない場合 (次を参照)。canGetConstantPool()
constantPoolCount()
Copyright © 1999, 2013, Oracle and/or its affiliates. All rights reserved.