- すべてのスーパー・インタフェース:
Comparable<Location>
,Mirror
位置の行番号を有効利用できるかどうかは、ターゲットVMから利用可能なデバッグ情報のレベルに依存します。
複数のミラー・インタフェースが位置を保持します。 このような各ミラーは、Locatable
インタフェースを拡張します。
Locationのソース情報は使用される層によって変わります。 層とは、一連の翻訳プロセスにおけるソース・コードのレベルを指します。 たとえば、bazという名前のプログラムを、Fooプログラミング言語で記述してからBar言語に翻訳し、最後にJavaプログラミング言語に翻訳したとします。 また、Javaプログラミング言語層が「Java」
、残り2つの言語層がそれぞれ「Foo」、「Bar」と名付けられたものとします。 このとき、sourceName()
メソッドとlineNumber()
メソッドを使って取得する位置は、「Foo」
層の場合であればbaz.fooの14行目、「Bar」
層であればbaz.barの23行目、「Java」
層であれば71行目という具合になります。 ある参照型に対して、Javaプログラミング言語のソース・ファイルが1つしか存在しない場合、他の言語層でも1つとはかぎりません。このため、ソース・パスを決定するには個々のLocationを参照する必要があります。 なお、層を明示的に指定しない問い合わせ(sourceName()
、sourcePath()
、およびlineNumber()
)の場合、VMのデフォルト層(VirtualMachine.getDefaultStratum()
)が使われます。 メソッド・パラメータとして明示的に指定されたか、VMのデフォルトとして暗黙に指定されたかに関係なく、指定された層がnull
であったり宣言する型内で利用できなかったりした場合は、宣言する型のデフォルト層(declaringType()
.defaultStratum()
)が使用されます。 通常のJavaプログラミング言語のソースから派生したコードの場合、存在する層は1つだけ(Java
だけ)であり、それがデフォルト層として返されます。 利用可能な層を確認するには、ReferenceType.availableStrata()
を使用します。
- 導入されたバージョン:
- 1.3
- 関連項目:
-
メソッドのサマリー
修飾子と型メソッド説明long
このLocationのメソッド内のコード位置を取得します。このLocationが属する型を取得します。boolean
指定されたObjectがこのLocationと等しいかどうか比較します。int
hashCode()
このLocationのハッシュ・コード値を返します。int
このLocationの行番号を取得します。int
lineNumber
(String stratum) このLocationの行番号です。method()
このLocationを含むメソッドを取得します。このロケーションに対応するソースの識別名を取得します。sourceName
(String stratum) このロケーションに対応するソースの識別名を取得します。この位置に対応するソースへのパスを取得します。sourcePath
(String stratum) この位置に対応するソースへのパスを取得します。インタフェース java.lang.Comparableで宣言されたメソッド
compareTo
インタフェース com.sun.jdi.Mirrorで宣言されたメソッド
toString, virtualMachine
-
メソッドの詳細
-
declaringType
ReferenceType declaringType()このLocationが属する型を取得します。 通常、宣言する型はClassType
ですが、実行可能な位置はInterfaceType
のstatic初期化子内にも存在する場合があります。- 戻り値:
- このLocationを含む
ReferenceType
。
-
method
Method method()このLocationを含むメソッドを取得します。- 戻り値:
- その位置の
Method
。
-
codeIndex
long codeIndex()このLocationのメソッド内のコード位置を取得します。- 戻り値:
- メソッド内の位置を表すlong値。位置がnativeメソッド内の場合は -1。
-
sourceName
String sourceName() throws AbsentInformationExceptionこのロケーションに対応するソースの識別名を取得します。このメソッドは、
sourceName(vm.getDefaultStratum())
と同等です(詳細はsourceName(String)
を参照)。- 戻り値:
- ソースを指定する文字列
- 例外:
AbsentInformationException
- ソース名が不明の場合
-
sourceName
このロケーションに対応するソースの識別名を取得します。 この文字列は、ソース・リポジトリ・メカニズムで解釈されます。返される名前は、指定された層の名前です。層の詳細は、
class comment
を参照してください。戻り値の文字列は、このLocationのソース・ファイルの非修飾名です。 たとえば、
java.lang.Thread
の場合、"Thread.java"
が返されます。- パラメータ:
stratum
- 情報取得元の層。宣言する型のデフォルト層を使用する場合はnull
。- 戻り値:
- ソースを指定する文字列
- 例外:
AbsentInformationException
- ソース名が不明の場合- 導入されたバージョン:
- 1.4
-
sourcePath
String sourcePath() throws AbsentInformationExceptionこの位置に対応するソースへのパスを取得します。このメソッドは、
sourcePath(vm.getDefaultStratum())
と同等です(詳細はsourcePath(String)
を参照)。- 戻り値:
- ソースを指定する文字列
- 例外:
AbsentInformationException
- ソース名が不明の場合
-
sourcePath
この位置に対応するソースへのパスを取得します。 この文字列は、ソース・リポジトリ・メカニズムで解釈されます。返されるパスは、指定された層のパスです。層の詳細は、
class comment
を参照してください。リファレンス実装では、Javaプログラミング言語層のようにソース・パスを明示的に指定しない層の場合、
declaringType()
のパッケージ名をプラットフォーム固有のパス名に変換した結果に、このLocationのソース・ファイルの修飾されていない名前(sourceName(stratum)
)を付加した文字列が返されます。 たとえば、Windowsプラットフォームの場合、java.lang.Thread
は"java\lang\Thread.java"
を返します。- パラメータ:
stratum
- 情報取得元の層。宣言する型のデフォルト層を使用する場合はnull
。- 戻り値:
- ソースを指定する文字列
- 例外:
AbsentInformationException
- ソース名が不明の場合- 導入されたバージョン:
- 1.4
-
lineNumber
int lineNumber()このLocationの行番号を取得します。このメソッドは、
lineNumber(vm.getDefaultStratum())
と同等です(詳細はlineNumber(String)
を参照)。- 戻り値:
- ソース内の行を指定するint型の値。情報を利用できない場合は -1を返す。特に、nativeメソッドには常に -1を返す。
-
lineNumber
int lineNumber(String stratum) このLocationの行番号です。 行番号は、sourceName(stratum)
により指定されたソースからの相対位置を示します。返される行番号は、指定された層の行番号です。層の詳細は、
class comment
を参照してください。- パラメータ:
stratum
- 情報取得元の層。宣言する型のデフォルト層を使用する場合はnull
。- 戻り値:
- ソース内の行を指定するint型の値。情報を利用できない場合は -1を返す。特に、nativeメソッドには常に -1を返す。
- 導入されたバージョン:
- 1.4
-
equals
boolean equals(Object obj) 指定されたObjectがこのLocationと等しいかどうか比較します。 -
hashCode
int hashCode()このLocationのハッシュ・コード値を返します。
-