|
Java Debug Interface | ||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
public interface ReferenceType
ターゲット VM 内の任意のオブジェクトの型を表します。「JavaTM 言語仕様」で規定されているように、ReferenceType はクラス型、インタフェース型、および配列型の 3 つをカバーします。任意の ReferenceType オブジェクトは、クラス用の ClassType
、インタフェース用の InterfaceType
、配列用の ArrayType
のどれか 1 つに属します。なお、Integer.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 内でこの型に対応するクラスオブジェクトを返します。 |
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)
この型内の指定の static Field の Value を取得します。 |
Map<Field,Value> |
getValues(List<? extends Field> fields)
指定のリスト中の各 static Field の Value を含むマップを返します。 |
int |
hashCode()
この ObjectReference のハッシュコード値を返します。 |
boolean |
isAbstract()
この型が abstract として宣言されたかどうかを判定します。 |
boolean |
isFinal()
この型が final として宣言されたかどうかを判定します。 |
boolean |
isInitialized()
この型が初期化されているかどうかを判定します。 |
boolean |
isPrepared()
この型が準備されているかどうかを判定します。 |
boolean |
isStatic()
この型が static として宣言されたかどうかを判定します。 |
boolean |
isVerified()
この型が検証されているかどうかを判定します。 |
List<Location> |
locationsOfLine(int lineNumber)
指定された行番号にマッピングされたすべての Location オブジェクトを含む List を返します。 |
List<Location> |
locationsOfLine(String stratum,
String sourceName,
int lineNumber)
指定された行番号にマッピングされたすべての Location オブジェクトを含む List を返します。 |
List<Method> |
methods()
この型で直接宣言された各 Method のリストを返します。 |
List<Method> |
methodsByName(String name)
指定された名前を持つ各可視 Method を含む List を返します。 |
List<Method> |
methodsByName(String name,
String signature)
指定の名前とシグニチャーを持つ各可視 Method を含むリストを返します。 |
String |
name()
この型の完全修飾名を取得します。 |
List<ReferenceType> |
nestedTypes()
この型内に宣言され、現在仮想マシンにロードされている ReferenceType オブジェクトの List を返します。 |
String |
sourceDebugExtension()
この型のソースデバッグ拡張機能を取得します。 |
String |
sourceName()
この型の宣言に対応するソースの識別名を取得します。 |
List<String> |
sourceNames(String stratum)
この型の宣言に対応するすべてのソースの識別名を取得します。 |
List<String> |
sourcePaths(String stratum)
この型の宣言に対応するすべてのソースのパスを取得します。 |
List<Field> |
visibleFields()
この型の各 Field を含むリストを返します。 |
List<Method> |
visibleMethods()
この型によって宣言された、または継承された各 Method のリストを返します。 |
インタフェース com.sun.jdi.Type から継承されたメソッド |
---|
signature |
インタフェース com.sun.jdi.Mirror から継承されたメソッド |
---|
toString, virtualMachine |
インタフェース java.lang.Comparable から継承されたメソッド |
---|
compareTo |
インタフェース com.sun.jdi.Accessible から継承されたメソッド |
---|
isPackagePrivate, isPrivate, isProtected, isPublic, modifiers |
メソッドの詳細 |
---|
String name()
プリミティブクラスの場合、返される名前は対応するプリミティブ型の名前です。たとえば、Integer.TYPE
によって表されるクラスの名前は「int」として返されます。
Type
内の name
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 に含まれる要素は 1 つだけであり、その 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
、そうでない場合は falseboolean isAbstract()
配列 (ArrayType
) およびプリミティブクラスの場合、戻り値は未定義です。
true
、そうでない場合は falseboolean isFinal()
配列 (ArrayType
) およびプリミティブクラスの場合、戻り値は常に true です。
true
、そうでない場合は falseboolean isPrepared()
配列 (ArrayType
) およびプリミティブクラスの場合、戻り値は未定義です。
true
、そうでない場合は falseboolean isVerified()
配列 (ArrayType
) およびプリミティブクラスの場合、戻り値は未定義です。
true
、そうでない場合は falseboolean isInitialized()
InterfaceType
の場合、このメソッドは isPrepared()
と同じ値を返します。
配列 (ArrayType
) およびプリミティブクラスの場合、戻り値は未定義です。
true
、そうでない場合は falseboolean failedToInitialize()
配列 (ArrayType
) およびプリミティブクラスの場合、戻り値は未定義です。
true
、そうでない場合は falseList<Field> fields()
Field
を含むリストを返します。継承されたフィールドは、含まれません。コンパイラによって作成された合成フィールドがある場合は、そのフィールドもこのリストに含まれます。
配列 (ArrayType
) およびプリミティブクラスの場合、戻り値のリストは常に空です。
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
オブジェクトの List。メソッドが存在しない場合は、リストの長さはゼロになる
ClassNotPreparedException
- このクラスがまだ準備されていない場合List<Method> methodsByName(String name)
Method
を含む List を返します。オーバーロードされたメソッドを検索するときによく使用します。
オーバーライドされたメソッドおよび隠されたメソッドは、含まれません。詳細は、「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
オブジェクトの List を返します。静的な入れ子になった型と、静的でない入れ子になった型 (つまり、内部型) の両方が含まれます。この参照型内のコードブロックに宣言されたローカル内部型も、返されるリストに含まれます。
配列 (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
オブジェクトのリスト
Field
オブジェクトとその Value
のマップ
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 、あるいはその両方によって、連続していない 2 つ以上のコードインデックスの範囲に特定の行がマップされていることがあります。この場合は、1 つの行に複数の位置が含まれたリストが返されます。 同じソース行が、「複数の」メソッド間で、異なるコードインデックスの範囲にマップされていることがあります。
配列 (ArrayType
) およびプリミティブクラスの場合、戻り値のリストは常に空です。インタフェース (InterfaceType
) の場合、戻り値のリストが空にならないのは、そのインタフェースのクラス初期化に実行可能コードが含まれている場合だけです。
戻り値のリストは、指定された「層」に対するものです。層については、Location
を参照してください。
stratum
- 情報取得元の層。defaultStratum()
を使う場合は null
sourceName
- 特定のソースファイル内の位置だけを取得する場合はそのファイル名、そうでない場合は null
Location
オブジェクトの List
AbsentInformationException
- このクラスの行番号情報が存在しないのにネイティブでも abstract でもない実行可能メンバが存在している場合、または sourceName が null
でないのにソース名情報が存在しない場合
ClassNotPreparedException
- このクラスがまだ準備されていない場合List<Location> locationsOfLine(int lineNumber) throws AbsentInformationException
Location
オブジェクトを含む List を返します。
このメソッドは、locationsOfLine(vm.getDefaultStratum(), null, lineNumber)
と等価です。詳細は、locationsOfLine(java.lang.String,java.lang.String,int)
を参照してください。
lineNumber
- 行番号
Location
オブジェクトの List
AbsentInformationException
- このクラスに対する行番号情報がない場合
ClassNotPreparedException
- このクラスがまだ準備されていない場合VirtualMachine.getDefaultStratum()
List<Location> locationsOfLine(String stratum, String sourceName, int lineNumber) throws AbsentInformationException
Location
オブジェクトを含む List を返します。
配列 (ArrayType
) およびプリミティブクラスの場合、戻り値のリストは常に空になります。インタフェース (InterfaceType
) の場合、戻り値のリストが空にならないのは、そのインタフェースのクラス初期化の指定された行番号の位置に実行可能コードが含まれている場合だけです。指定された行番号の位置に実行可能コードが存在しない場合は、空のリストが返されます。
戻り値のリストは、指定された「層」に対するものです。層については、Location
を参照してください。
stratum
- 行番号とソース名の比較に使う層。defaultStratum()
を使う場合は null
sourceName
- 行番号を含むソース名。すべてのソース名に一致させる場合は null
lineNumber
- 行番号
Location
オブジェクトの List
AbsentInformationException
- このクラスに対する行番号情報が存在しない場合、または sourceName が null
でないのにソース名情報が存在しない場合
ClassNotPreparedException
- このクラスがまだ準備されていない場合List<String> availableStrata()
層については、Location
を参照してください。
java.lang.String
の List。String defaultStratum()
Java
) が返されます。
層については、Location
を参照してください。
boolean equals(Object obj)
Object
内の equals
ReferenceType
である場合、両方の ReferenceType が同じ VM に属している場合、およびその VM の java.lang.Class の同じインスタンスに対応するクラスが ReferenceType によってミラー化されている場合は trueint hashCode()
Object
内の hashCode
|
Java Debug Interface | ||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |