|
Java Debug Interface | ||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
public interface ReferenceType
ターゲット VM 内の任意のオブジェクトの型を表します。「JavaTM 言語仕様」で規定されているように、ReferenceType はクラス型、インタフェース型、および配列型の 3 つをカバーします。すべての ReferenceType オブジェクトは、クラスの ClassType
、インタフェースの InterfaceType
、配列の ArrayType
のいずれかのサブインタフェースに属します。プリミティブクラス (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 内でこの型に対応するクラスオブジェクトを返します。 |
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)
この型の指定の static Field の Value を取得します。 |
Map<Field,Value> |
getValues(List<? extends Field> fields)
指定のリスト内の各 static Field の Value を含むマップを返します。 |
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 を返します。 |
List<Location> |
locationsOfLine(String stratum,
String sourceName,
int lineNumber)
指定された行番号にマッピングされたすべての Location オブジェクトを含む List を返します。 |
int |
majorVersion()
「Java 仮想マシン仕様」のクラスファイル形式の説明に定義されているように、クラスのメジャーバージョン番号を返します。 |
List<Method> |
methods()
この型内で宣言された各 Method を含むリストを返します。 |
List<Method> |
methodsByName(String name)
指定された名前を持つ各可視 Method を含む List を返します。 |
List<Method> |
methodsByName(String name,
String signature)
指定された名前とシグニチャーを持つ各可視 Method を含む List を返します。 |
int |
minorVersion()
「Java 仮想マシン仕様」のクラスファイル形式の説明に定義されているように、クラスのマイナーバージョン番号を返します。 |
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 に含まれる要素は、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
オブジェクトのリスト。フィールドが存在しない場合は、リストの長さはゼロになる。
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
を含む List を返します。シグニチャー文字列は、ターゲットメソッドの 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
の Map。
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
オブジェクトの List。
AbsentInformationException
- このクラスに対する行番号情報がなく、かつこのクラスの実行可能メンバーとして非 native で非 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
を参照してください。
List<ObjectReference> instances(long maxInstances)
この操作は、ターゲット仮想マシンでサポートされていないことがあります。この操作がサポートされているかどうかを確認するには、VirtualMachine.canGetInstanceInfo()
を使用します。
maxInstances
- 返されるインスタンスの最大数。
負でない数値。ゼロの場合、すべてのインスタンスが返される。
ObjectReference
オブジェクトの List。この ReferenceType のインスタンスが存在しない場合は、長さゼロのリストを返す。
UnsupportedOperationException
- ターゲット仮想マシンでこの操作がサポートされていない場合。canGetInstanceInfo()
を参照。
IllegalArgumentException
- maxInstances がゼロ未満の場合。VirtualMachine.instanceCounts(List)
,
ObjectReference.referringObjects(long)
boolean equals(Object obj)
Object
内の equals
obj
- the reference object with which to compare.
ReferenceType
である場合、両方の ReferenceType が同じ VM に属している場合、およびその VM の java.lang.Class の同じインスタンスに対応するクラスが ReferenceType によってミラー化されている場合は true。Object.hashCode()
,
Hashtable
int hashCode()
Object
内の hashCode
Object.equals(java.lang.Object)
,
Hashtable
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()
|
Java Debug Interface | ||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |