-
- 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
-
-
方法摘要
所有方法 实例方法 抽象方法 变量和类型 方法 描述 long
codeIndex()
获取此位置方法中的代码位置。ReferenceType
declaringType()
获取此Location所属的类型。boolean
equals(Object obj)
将指定的Object与此Location进行相等性比较。int
hashCode()
返回此Location的哈希码值。int
lineNumber()
获取此Location的行号。int
lineNumber(String stratum)
此位置的行号。方法
method()
获取包含此Location的方法。String
sourceName()
获取与此位置对应的源的标识名称。String
sourceName(String stratum)
获取与此位置对应的源的标识名称。String
sourcePath()
获取与此位置对应的源的路径。String
sourcePath(String stratum)
获取与此位置对应的源的路径。-
声明方法的接口 java.lang.Comparable
compareTo
-
声明方法的接口 com.sun.jdi.Mirror
toString, virtualMachine
-
-
-
-
方法详细信息
-
declaringType
ReferenceType declaringType()
获取此Location所属的类型。 通常,声明类型是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
)。返回的字符串是此Location的源文件的非限定名称。 例如,
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编程语言层从不这样做),返回的字符串是转换为平台相关路径的包名
declaringType()
,后跟源文件的非限定名称地点(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; 特别是,对于本机方法,始终返回-1。
-
lineNumber
int lineNumber(String stratum)
- 参数
-
stratum
- 从声明类型的默认层或从null
检索信息的层。 - 结果
- 指定源中的行的int,如果信息不可用则返回-1; 特别是,对于本机方法,始终返回-1。
- 从以下版本开始:
- 1.4
-
equals
boolean equals(Object obj)
将指定的Object与此Location进行相等性比较。- 重写:
-
equals
,类Object
- 参数
-
obj
- 要与之比较的引用对象。 - 结果
- 如果对象是位置,并且它引用与此位置相同的VM中的同一点,则为true。
- 另请参见:
-
Object.hashCode()
,HashMap
-
hashCode
int hashCode()
返回此Location的哈希码值。- 重写:
-
hashCode
在类Object
- 结果
- 整数哈希码
- 另请参见:
-
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
-
-