|
Java Debug Interface | |||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
ターゲット VM 内の任意のオブジェクトの型を表します。JavaTM Language Specification で規定されているように、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 |
allFields()
この型、そのスーパークラス、実装インタフェース、およびスーパーインタフェース、あるいはそのいずれかで宣言された各 Field を含むリストを返します。 |
List |
allLineLocations()
この参照型の各実行可能ソース行の位置を示す Location オブジェクトを含むリストを返します。
|
List |
allLineLocations(String stratum,
String sourceName)
この参照型内の各実行可能なソース行に対する Location オブジェクトを含むリストを返します。 |
List |
allMethods()
この型、そのスーパークラス、実装インタフェース、およびスーパーインタフェース、あるいはそのいずれかで宣言された各 Method を含むリストを返します。 |
List |
availableStrata()
この参照型で利用可能な層を返します。 |
ClassLoaderReference |
classLoader()
この型に対応するクラスをロードしたクラスローダのオブジェクトを取得します。 |
ClassObjectReference |
classObject()
ターゲット VM 内でこの型に対応するクラスオブジェクトを返します。 |
String |
defaultStratum()
この参照型のデフォルト層を返します。 |
boolean |
equals(Object obj)
指定された Object とこの ReferenceType が等しいかどうかを比較します。 |
boolean |
failedToInitialize()
このクラスの初期化が失敗したかどうかを判定します。 |
Field |
fieldByName(String fieldName)
指定されたあいまいでない名前で可視 Field を検索します。 |
List |
fields()
この型で宣言された各 Field を含むリストを返します。 |
Value |
getValue(Field field)
この型内の指定の static Field の Value を取得します。 |
Map |
getValues(List fields)
指定のリスト中の各 static Field の Value を含むマップを返します。 |
int |
hashCode()
この ObjectReference のハッシュコード値を返します。 |
boolean |
isAbstract()
この型が abstract として宣言されたかどうかを判定します。 |
boolean |
isFinal()
この型が final として宣言されたかどうかを判定します。 |
boolean |
isInitialized()
この型が初期化されているかどうかを判定します。 |
boolean |
isPrepared()
この型が準備されているかどうかを判定します。 |
boolean |
isStatic()
この型が static として宣言されたかどうかを判定します。 |
boolean |
isVerified()
この型が検証されているかどうかを判定します。 |
List |
locationsOfLine(int lineNumber)
指定された行番号にマッピングされたすべての Location オブジェクトを含む List を返します。
|
List |
locationsOfLine(String stratum,
String sourceName,
int lineNumber)
指定された行番号にマッピングされたすべての Location オブジェクトを含む List を返します。
|
List |
methods()
この型で直接宣言された各 Method のリストを返します。 |
List |
methodsByName(String name)
指定された名前を持つ各可視 Method を含む List を返します。 |
List |
methodsByName(String name,
String signature)
指定の名前とシグニチャーを持つ各可視 Method を含むリストを返します。 |
String |
name()
この型の完全修飾名を取得します。 |
List |
nestedTypes()
この型内に宣言され、現在 Virtual Machine にロードされている ReferenceType オブジェクトの List を返します。 |
String |
sourceDebugExtension()
この型のソースデバッグ拡張機能を取得します。 |
String |
sourceName()
この型の宣言に対応するソースの識別名を取得します。 |
List |
sourceNames(String stratum)
この型の宣言に対応するすべてのソースの識別名を取得します。 |
List |
sourcePaths(String stratum)
この型の宣言に対応するすべてのソースのパスを取得します。 |
List |
visibleFields()
この型の各 Field を含むリストを返します。 |
List |
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 |
| メソッドの詳細 |
public String name()
プリミティブクラスの場合、返される名前は対応するプリミティブ型の名前です。たとえば、Integer.TYPE によって表されるクラスの名前は「int」として返されます。
Type 内の namepublic ClassLoaderReference classLoader()
ClassLoaderReference。クラスがブートストラップクラスローダによってロードされた場合は null
public String sourceName()
throws AbsentInformationException
戻り値のソース名は、VM のデフォルト層 (VirtualMachine.getDefaultStratum()) に応じて変わります。リファレンス実装では、基底層を使用する場合、この型の宣言が含まれているソースファイルの非修飾名が文字列として返されます。その他の層の場合、その層の 1 番目のソース名が返されます。Java 以外のプログラミング言語では、1 つの参照型に対して複数のソースファイルが存在する可能性があるため、Location.sourceName() や sourceNames(String) を使用することをお勧めします。
配列 (ArrayType) およびプリミティブクラスの場合、常に AbsentInformationException がスローされます。
AbsentInformationException - ソース名が不明の場合
public List sourceNames(String stratum)
throws AbsentInformationException
戻り値の名前は、指定された層に対するものです。層については、Location を参照してください。リファレンス実装では、Java プログラミング言語層を使用する場合、戻り値の List に含まれる要素は 1 つだけであり、その String 要素には、この型の宣言が含まれているソースファイルの非修飾名が格納されます。その他の層を使用する場合、その層で定義されているすべてのソース名が返されます。
stratum - 情報取得元の層。宣言する型のデフォルト層を使用する場合は null
AbsentInformationException - ソース名が不明の場合
配列 (ArrayType) およびプリミティブクラスの場合、常に AbsentInformationException がスローされます。
public List 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 がスローされます。
public String sourceDebugExtension()
throws AbsentInformationException
この操作は、ターゲット Virtual Machine でサポートされていないことがあります。この操作がサポートされているかどうかを確認するには、canGetSourceDebugExtension() を使用してください。
AbsentInformationException - 拡張機能が指定されていない場合
UnsupportedOperationException - ターゲット Virtual Machine がこの操作をサポートしていない場合。canGetSourceDebugExtension() を参照public boolean isStatic()
false が返されます。
true、それ以外の場合は falsepublic boolean isAbstract()
配列 (ArrayType) およびプリミティブクラスの場合、戻り値は不定です。
true、それ以外の場合は falsepublic boolean isFinal()
配列 (ArrayType) およびプリミティブクラスの場合、戻り値は常に true です。
true、それ以外の場合は falsepublic boolean isPrepared()
配列 (ArrayType) およびプリミティブクラスの場合、戻り値は不定です。
true、それ以外の場合は falsepublic boolean isVerified()
配列 (ArrayType) およびプリミティブクラスの場合、戻り値は不定です。
true、それ以外の場合は falsepublic boolean isInitialized()
InterfaceType の場合、このメソッドは isPrepared() と同じ値を返します。
配列 (ArrayType) およびプリミティブクラスの場合、戻り値は不定です。
true、それ以外の場合は falsepublic boolean failedToInitialize()
配列 (ArrayType) およびプリミティブクラスの場合、戻り値は不定です。
true、それ以外の場合は falsepublic List fields()
Field を含むリストを返します。継承されたフィールドは、含まれません。コンパイラによって作成された合成フィールドがある場合は、そのフィールドもこのリストに含まれます。
配列 (ArrayType) およびプリミティブクラスの場合、戻り値のリストは常に空です。
Field オブジェクトのリスト。フィールドが存在しない場合は、リストの長さはゼロになる
ClassNotPreparedException - このクラスがまだ準備されていない場合public List visibleFields()
Field を含むリストを返します。ただし、隠しフィールドおよびあいまいなフィールドは含まれません。このクラスまたはそのインスタンスから、単純名でアクセスできる各フィールドが含まれます。あいまいに多重継承されたフィールド、つまりあとで継承されたクラスの同じ名前のフィールドによって隠されたフィールドには、単純名でアクセスすることはできません。このようなフィールドは、返されるリストにも含まれません。その他の継承されたフィールドは、すべてこのリストに含まれます。詳細は、Java 言語仕様のセクション 8.3 を参照してください。
配列 (ArrayType) およびプリミティブクラスの場合、戻り値のリストは常に空です。
Field オブジェクトの List。可視フィールドが存在しない場合は、リストの長さはゼロになる
ClassNotPreparedException - このクラスがまだ準備されていない場合public List allFields()
Field を含むリストを返します。隠しフィールドおよび多重継承されたフィールドを含め、宣言されたフィールドおよび継承されたフィールドをすべて返します。
配列 (ArrayType) およびプリミティブクラスの場合、戻り値のリストは常に空です。
Field オブジェクトの List。フィールドが存在しない場合は、リストの長さはゼロになる
ClassNotPreparedException - このクラスがまだ準備されていない場合public Field fieldByName(String fieldName)
Field を検索します。このメソッドは、Java 言語仕様のセクション 8.3.3 に指定された継承規則に従って可視性を判断します。
配列 (ArrayType) およびプリミティブクラスの場合、戻り値は常に null です。
fieldName - 目的のフィールドの名前を含む文字列
Field オブジェクト。指定の名前のフィールドがない場合、または指定の名前があいまいな場合は null
ClassNotPreparedException - このクラスがまだ準備されていない場合public List methods()
Method のリストを返します。継承されたメソッドは、含まれません。このリストには、コンストラクタ、初期化メソッド (ある場合)、およびコンパイラによって作成された合成メソッドが含まれます。
配列 (ArrayType) およびプリミティブクラスの場合、戻り値のリストは常に空です。
Method オブジェクトのリスト。メソッドが存在しない場合は、リストの長さはゼロになる
ClassNotPreparedException - このクラスがまだ準備されていない場合public List visibleMethods()
Method のリストを返します。隠されたまたはオーバライドされた、スーパークラスまたはスーパーインタフェースからのメソッドは含まれません。
ただし返されるリストには、同じシグニチャーを持つ多重継承メソッドが含まれることがありますが、ClassType のメンバが複数含まれることはありません。詳細は、Java 言語仕様のセクション 8.4.6 を参照してください。
配列 (ArrayType) およびプリミティブクラスの場合、戻り値のリストは常に空です。
Method オブジェクトの List。可視メソッドが存在しない場合は、リストの長さはゼロになる
ClassNotPreparedException - このクラスがまだ準備されていない場合public List allMethods()
Method を含むリストを返します。隠しフィールドおよびオーバライドされたフィールドを含め、宣言されたフィールドおよび継承されたフィールドをすべて返します。
配列 (ArrayType) およびプリミティブクラスの場合、戻り値のリストは常に空です。
Method オブジェクトの List。メソッドが存在しない場合は、リストの長さはゼロになる
ClassNotPreparedException - このクラスがまだ準備されていない場合public List methodsByName(String name)
Method を含む List を返します。オーバーロードされたメソッドを検索するときによく使用します。
オーバーライドされたメソッドおよび隠されたメソッドは、含まれません。詳細は、Java 言語仕様のセクション 8.4.6 を参照してください。
配列 (ArrayType) およびプリミティブクラスの場合、戻り値のリストは常に空です。
name - 検索対象のメソッドの名前
Method オブジェクトの List。一致するメソッドが見つからない場合は、リストの長さはゼロになる
ClassNotPreparedException - このクラスがまだ準備されていない場合
public List 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 - このクラスがまだ準備されていない場合public List nestedTypes()
ReferenceType オブジェクトの List を返します。静的な入れ子になった型と、静的でない入れ子になった型 (つまり、内部型) の両方が含まれます。この参照型内のコードブロックに宣言されたローカル内部型も、返されるリストに含まれます。
配列 (ArrayType) およびプリミティブクラスの場合、戻り値のリストは常に空です。
ReferenceType オブジェクトの List。入れ子になった型がない場合は、リストの長さはゼロになるpublic Value getValue(Field field)
Field の Value を取得します。Field は、この型に対して有効である必要があります。つまり、Field は、この型、スーパークラス、スーパーインタフェース、または実装インタフェースで宣言されている必要があります。
field - 要求された値を含むフィールド
Value
IllegalArgumentException - フィールドがこのオブジェクトのクラスとして有効でない場合public Map getValues(List fields)
Field の Value を含むマップを返します。Field は、この型に対して有効である必要があります。つまり、Field は、この型、スーパークラス、スーパーインタフェース、または実装インタフェースで宣言されている必要があります。
fields - 要求された値を含む Field オブジェクトのリスト
Field オブジェクトとその Value のマップ
IllegalArgumentException - このオブジェクトのクラスに無効なフィールドがある場合
VMMismatchException - Mirror 引数とこの引数のミラーが同じ VirtualMachine に属さない場合public ClassObjectReference classObject()
ClassObjectReference
public List allLineLocations()
throws AbsentInformationException
Location オブジェクトを含むリストを返します。
このメソッドは、allLineLocations(vm.getDefaultStratum(),null) と等価です。詳細については、allLineLocations(String,String) を参照してください。
AbsentInformationException - このクラスに対する行番号情報がなく、かつこのクラスの実行可能メンバに非 native で非 abstract なものが存在する場合
ClassNotPreparedException - このクラスがまだ準備されていない場合
public List allLineLocations(String stratum,
String sourceName)
throws AbsentInformationException
Location オブジェクトを含むリストを返します。各位置では、特定のソース行がコードインデックスの特定の範囲にマップされています。この範囲の開始点は、Location.codeIndex() によって調べることができます。コンパイラまたは VM 、あるいはその両方によって、連続していない 2 つ以上のコードインデックスの範囲に特定の行がマップされていることがあります。この場合は、1 つの行に複数の位置が含まれたリストが返されます。 同じソース行が、「複数の」メソッド間で、異なるコードインデックスの範囲にマップされていることがあります。
配列 (ArrayType) およびプリミティブクラスの場合、戻り値のリストは常に空です。インタフェース (InterfaceType) の場合、戻り値のリストが空にならないのは、そのインタフェースのクラス初期化に実行可能コードが含まれている場合だけです。
戻り値のリストは、指定された「層」に対するものです。層の詳細については、Locationを参照してください。
stratum - 情報取得元の層。defaultStratum() を使う場合は nullsourceName - 特定のソースファイル内の位置だけを取得する場合はそのファイル名、そうでない場合は null
Location オブジェクトの List
AbsentInformationException - このクラスの行番号情報が存在しないのにネイティブでも abstract でもない実行可能メンバが存在している場合、または sourceName が null でないのにソース名情報が存在しない場合
ClassNotPreparedException - このクラスがまだ準備されていない場合
public List 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()
public List locationsOfLine(String stratum,
String sourceName,
int lineNumber)
throws AbsentInformationException
Location オブジェクトを含む List を返します。
配列 (ArrayType) およびプリミティブクラスの場合、戻り値のリストは常に空になります。インタフェース (InterfaceType) の場合、戻り値のリストが空にならないのは、そのインタフェースのクラス初期化の指定された行番号の位置に実行可能コードが含まれている場合だけです。指定された行番号の位置に実行可能コードが存在しない場合は、空のリストが返されます。
戻り値のリストは、指定された「層」に対するものです。層の詳細については、Locationを参照してください。
stratum - 行番号とソース名の比較に使う層。defaultStratum() を使う場合は nullsourceName - 行番号を含むソース名。すべてのソース名に一致させる場合は nulllineNumber - 行番号
Location オブジェクトの List
AbsentInformationException - このクラスに対する行番号情報が存在しない場合、または sourceName が null でないのにソース名情報が存在しない場合
ClassNotPreparedException - このクラスがまだ準備されていない場合public List availableStrata()
層については、Location を参照してください。
java.lang.String の List。public String defaultStratum()
Java) が返されます。
層については、Location を参照してください。
public boolean equals(Object obj)
Object 内の equalsReferenceType である場合、両方の ReferenceType が同じ VM に属している場合、およびその VM の java.lang.Class の同じインスタンスに対応するクラスが ReferenceType によってミラー化されている場合は truepublic int hashCode()
Object 内の hashCode
|
Java Debug Interface | |||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||