-
- All Superinterfaces:
-
Comparable<Location>
,Mirror
public interface Location extends Mirror, Comparable<Location>
目标VM的执行代码中的一个点。 位置用于标识挂起线程的当前位置(类似于本机程序中的指令指针或程序计数器寄存器)。 它们也用于识别设置断点的位置。位置的行号的可用性将取决于目标VM可用的调试信息的级别。
几个镜像接口有位置。 每个这样的镜像扩展了一个
Locatable
接口。位置的源信息取决于所使用的层 。 层次是翻译序列中的源代码级别。 例如,说baz程序是用编程语言“Foo”编写的,然后翻译成“Bar”语言,最后转化为Java编程语言。 Java编程语言层次被命名为
"Java"
,我们假设其他层被命名为“Foo”和“Bar”。 一个给定的位置(如由观察sourceName()
种lineNumber()
方法)可能是在“baz.foo”的线14"Foo"
在“baz.bar”的阶层,第23行"Bar"
地层和的线71"Java"
地层。 请注意,虽然Java编程语言可能只有一个源文件作为引用类型,但此限制不适用于其他层 - 因此应查阅每个位置以确定其源路径。 不指定层(查询sourceName()
,sourcePath()
和lineNumber()
)使用虚拟机的默认层(VirtualMachine.getDefaultStratum()
)。 如果指定层(无论是作为虚拟机的默认方法参数或隐显式指定)为null
或不可用的声明类型,声明类型的默认阶层使用(declaringType()
。defaultStratum()
)。 请注意,在正常情况下,源自Java编程语言源的代码将只有一个层("Java"
),并将作为默认值返回。 确定可用地层使用ReferenceType.availableStrata()
。- 从以下版本开始:
- 1.3
- 另请参见:
-
EventRequestManager
,StackFrame
,BreakpointEvent
,ExceptionEvent
,Locatable
-
-
方法摘要
所有方法 接口方法 抽象方法 Modifier and Type 方法 描述 long
codeIndex()
获取此位置方法中的代码位置。ReferenceType
declaringType()
获取此位置所属的类型。boolean
equals(Object obj)
将指定的对象与此位置进行比较以获得相等性。int
hashCode()
返回此位置的哈希码值。int
lineNumber()
获取此位置的行号。int
lineNumber(String stratum)
此位置的行号。方法
method()
获取包含此位置的方法。String
sourceName()
获取与此位置相对应的源的标识名称。String
sourceName(String stratum)
获取与此位置相对应的源的标识名称。String
sourcePath()
获取与此位置相对应的源的路径。String
sourcePath(String stratum)
获取与此位置相对应的源的路径。-
Methods inherited from interface java.lang.Comparable
compareTo
-
Methods inherited from interface com.sun.jdi.Mirror
toString, virtualMachine
-
-
-
-
方法详细信息
-
declaringType
ReferenceType declaringType()
获取此位置所属的类型。 通常,声明类型是ClassType
,但可执行位置也可能存在于静态初始化程序中的一个InterfaceType
中 。- 结果
-
包含此位置的
ReferenceType
。
-
codeIndex
long codeIndex()
获取此位置方法中的代码位置。- 结果
- long表示方法中的位置,如果位置在本机方法内,则为-1。
-
sourceName
String sourceName() throws AbsentInformationException
获取与此位置相对应的源的标识名称。此方法相当于
sourceName(vm.getDefaultStratum())
- 有关详细信息,请参阅sourceName(String)
。- 结果
- 一个指定源的字符串
- 异常
-
AbsentInformationException
- 如果源名称不知道
-
sourceName
String sourceName(String stratum) throws AbsentInformationException
获取与此位置相对应的源的标识名称。 该字符串的解释是源存储库机制的责任。返回的名称是指定的层 (有关层的描述,请参阅
class comment
)。返回的字符串是此位置的源文件的不合格名称。 例如,
java.lang.Thread
将返回"Thread.java"
。- 参数
-
stratum
- 为声明类型的默认层次检索信息的层或null
。 - 结果
- 一个指定源的字符串
- 异常
-
AbsentInformationException
- 如果源名称不知道 - 从以下版本开始:
- 1.4
-
sourcePath
String sourcePath() throws AbsentInformationException
获取与此位置相对应的源的路径。此方法相当于
sourcePath(vm.getDefaultStratum())
- 有关详细信息,请参阅sourcePath(String)
。- 结果
- 一个指定源的字符串
- 异常
-
AbsentInformationException
- 如果源名称不知道
-
sourcePath
String sourcePath(String stratum) throws AbsentInformationException
获取与此位置相对应的源的路径。 该字符串的解释是源存储库机制的责任。返回的路径用于指定的层 (有关层的描述,请参阅
class comment
)。在参考实现中,对于没有明确指定源路径(Java编程语言stratum永远不会)的层,返回的字符串是
declaringType()
的包名称,转换为平台相关路径,后跟源文件的不合格名称位置(sourceName(stratum)
)。 例如,在Windows平台上,java.lang.Thread
将返回"java\lang\Thread.java"
。- 参数
-
stratum
- 为声明类型的默认层次检索信息或null
的层次。 - 结果
- 一个指定源的字符串
- 异常
-
AbsentInformationException
- 如果源名称不知道 - 从以下版本开始:
- 1.4
-
lineNumber
int lineNumber()
获取此位置的行号。此方法相当于
lineNumber(vm.getDefaultStratum())
- 有关详细信息,请参阅lineNumber(String)
。- 结果
- 指定源中的行的int返回-1,如果信息不可用; 具体来说,总是返回-1为本地方法。
-
lineNumber
int lineNumber(String stratum)
- 参数
-
stratum
- 从声明类型的默认层次中检索信息的层或null
。 - 结果
- 指定源中的行的int返回-1,如果信息不可用; 具体来说,总是返回-1为本地方法。
- 从以下版本开始:
- 1.4
-
equals
boolean equals(Object obj)
将指定的对象与此位置进行比较以获得相等性。- 重写:
-
equals
在Object
- 参数
-
obj
- 与之比较的参考对象。 - 结果
- 如果对象是位置,并且它是否指向与此位置相同的VM中的同一点,则为true。
- 另请参见:
-
Object.hashCode()
,HashMap
-
hashCode
int hashCode()
返回此位置的哈希码值。- 重写:
-
hashCode
在Object
- 结果
- 整数哈希码
- 另请参见:
-
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
-
-