- 所有超级接口:
-
Accessible
,Comparable<Method>
,Locatable
,Mirror
,TypeComponent
TypeComponent
。
- 自版本:
- 1.3
- 另请参阅:
-
Method Summary
Modifier and TypeMethodDescription返回一个包含此方法中每个可执行源行的Location
对象的列表。allLineLocations
(String stratum, String sourceName) 返回一个包含此方法中每个可执行源行的Location
对象的列表。返回一个包含作为此方法参数声明的每个LocalVariable
的列表。返回一个包含此方法形式参数类型的文本表示的列表。返回一个包含此方法形式参数类型的列表。byte[]
返回包含此方法字节码的数组。boolean
将指定的对象与此方法进行比较以确定是否相等。int
hashCode()
返回此方法的哈希码值。boolean
确定此方法是否为抽象方法。boolean
isBridge()
确定此方法是否为桥接方法。boolean
确定此方法是否为构造方法。default boolean
确定此方法是否为默认方法。boolean
isNative()
确定此方法是否为本地方法。boolean
确定此方法是否已过时。boolean
确定此方法是否为静态初始化方法。boolean
确定此方法是否为同步方法。boolean
确定此方法是否接受可变数量的参数。location()
返回此方法的Location
,如果与之关联可执行代码。locationOfCodeIndex
(long codeIndex) 返回给定代码索引的Location
。locationsOfLine
(int lineNumber) 返回一个包含映射到给定行号的所有Location
对象的列表。locationsOfLine
(String stratum, String sourceName, int lineNumber) 返回一个包含映射到给定行号和源名称的所有Location
对象的列表。返回在此方法声明中指定的返回类型。返回在此方法声明中指定的返回类型的文本表示。返回在此方法中声明的每个LocalVariable
的列表。variablesByName
(String name) 返回在此方法中具有给定名称的每个LocalVariable
的列表。Methods declared in interface com.sun.jdi.Accessible
isPackagePrivate, isPrivate, isProtected, isPublic, modifiers
Methods declared in interface java.lang.Comparable
compareTo
Methods declared in interface com.sun.jdi.Mirror
toString, virtualMachine
Methods declared in interface com.sun.jdi.TypeComponent
declaringType, genericSignature, isFinal, isStatic, isSynthetic, name, signature
-
Method Details
-
returnTypeName
String returnTypeName()返回在此方法声明中指定的返回类型的文本表示。即使类型尚未创建或加载,此类型名称始终可用。
- 返回:
-
包含返回类型名称的
String
。
-
returnType
返回在此方法声明中指定的返回类型。注意: 如果此方法的返回类型是引用类型(类、接口或数组),并且尚未由声明类型的类加载器创建或加载 - 也就是说,
declaringType()
.classLoader()
,那么将抛出ClassNotLoadedException。此外,引用类型可能已加载但尚未准备好,此时将返回类型,但尝试对返回类型执行某些操作(例如fields()
)将抛出ClassNotPreparedException。使用ReferenceType.isPrepared()
来确定引用类型是否已准备好。- 返回:
-
此方法的返回
Type
。 - 抛出:
-
ClassNotLoadedException
- 如果类型尚未通过适当的类加载器创建或加载。 - 另请参阅:
-
argumentTypeNames
返回一个包含此方法形式参数类型的文本表示的列表。即使类型尚未创建或加载,此列表始终可用。
- 返回:
- 返回此方法每个参数的一个列表,每个参数的元素表示在编译时指定的形式参数的类型。如果形式参数声明为省略号,则将其表示为省略号之前的类型的数组。
-
argumentTypes
返回一个包含此方法形式参数类型的列表。注意: 如果有任何参数的类型为引用类型(类、接口或数组),并且尚未由声明类型的类加载器创建或加载 - 也就是说,
declaringType()
.classLoader()
,那么将抛出ClassNotLoadedException。此外,引用类型可能已加载但尚未准备好,此时将返回列表,但尝试对类型执行某些操作(例如fields()
)将抛出ClassNotPreparedException。使用ReferenceType.isPrepared()
来确定引用类型是否已准备好。- 返回:
- 返回此方法每个参数的类型的列表,每个参数的元素表示在编译时指定的形式参数的类型。如果形式参数声明为省略号,则将其表示为省略号之前的类型的数组。
- 抛出:
-
ClassNotLoadedException
- 如果类型尚未通过适当的类加载器加载。 - 另请参阅:
-
isAbstract
boolean isAbstract()确定此方法是否为抽象方法。- 返回:
-
如果方法声明为抽象,则返回
true
; 否则返回false
。
-
isDefault
default boolean isDefault()确定此方法是否为默认方法。- 返回:
-
如果方法声明为默认方法,则返回
true
; 否则返回false
。 - 自版本:
- 1.8
-
isSynchronized
boolean isSynchronized()确定此方法是否为同步方法。- 返回:
-
如果方法声明为同步方法,则返回
true
; 否则返回false
。
-
isNative
boolean isNative()确定此方法是否为本地方法。- 返回:
-
如果方法声明为本地方法,则返回
true
; 否则返回false
。
-
isVarArgs
boolean isVarArgs()确定此方法是否接受可变数量的参数。- 返回:
-
如果方法接受可变数量的参数,则返回
true
; 否则返回false
。 - 自版本:
- 1.5
-
isBridge
boolean isBridge()确定此方法是否为桥接方法。桥接方法在《Java语言规范》中有定义。- 返回:
-
如果方法为桥接方法,则返回
true
; 否则返回false
。 - 自版本:
- 1.5
-
isConstructor
boolean isConstructor()确定此方法是否为构造方法。- 返回:
-
如果方法为构造方法,则返回
true
; 否则返回false
。
-
isStaticInitializer
boolean isStaticInitializer()确定此方法是否为静态初始化方法。- 返回:
-
如果方法为静态初始化方法,则返回
true
; 否则返回false
。
-
isObsolete
boolean isObsolete()确定此方法是否已过时。- 返回:
-
如果此方法已被
VirtualMachine.redefineClasses(java.util.Map<? extends com.sun.jdi.ReferenceType, byte[]>)
操作所废弃,则返回true
。 - 自版本:
- 1.4
-
allLineLocations
返回一个包含此方法中每个可执行源行的Location
对象的列表。此方法等同于
allLineLocations(vm.getDefaultStratum(),null)
- 有关更多信息,请参阅allLineLocations(String,String)
。- 返回:
- 返回所有源代码行Location对象的列表。
- 抛出:
-
AbsentInformationException
- 如果此(非本地的,非抽象的)方法没有行号信息。
-
allLineLocations
List<Location> allLineLocations(String stratum, String sourceName) throws AbsentInformationException 返回一个包含此方法中每个可执行源代码行的Location对象的列表。每个位置将源代码行映射到代码索引范围。可以通过
Location.codeIndex()
确定范围的起始位置。返回的列表按代码索引排序(从低到高)。如果编译器和/或VM将该行映射到两个或更多不相交的代码索引范围,则返回的列表可能包含特定行号的多个位置。
如果方法是本地的或抽象的,则返回一个空列表。
返回的列表是针对指定的stratum(请参阅Location以获取strata的描述)。
- 参数:
-
stratum
- 要检索信息的stratum,或null
以使用ReferenceType.defaultStratum()
-
sourceName
- 仅返回此源文件中的位置,或null
以返回位置。 - 返回:
- 返回所有源代码行Location对象的列表。
- 抛出:
-
AbsentInformationException
- 如果此(非本地的,非抽象的)方法没有行号信息。或者如果sourceName不是null
,并且不存在源名称信息。 - 自1.4版本起:
- 1.4
-
locationsOfLine
返回一个列表,其中包含映射到给定行号的每个Location对象。此方法等效于
locationsOfLine(vm.getDefaultStratum(), null, lineNumber)
- 有关更多信息,请参阅locationsOfLine(java.lang.String,java.lang.String,int)
。- 参数:
-
lineNumber
- 行号 - 返回:
- 返回映射到给定行号的Location对象的列表。
- 抛出:
-
AbsentInformationException
- 如果此方法没有行号信息。
-
locationsOfLine
List<Location> locationsOfLine(String stratum, String sourceName, int lineNumber) throws AbsentInformationException 返回一个列表,其中包含映射到给定行号和源名称的每个Location对象。返回一个列表,其中包含映射到给定行号的每个Location。返回的列表将包含编译器和/或VM已分配给给定行的每个不相交代码索引范围的位置。每个返回的位置对应于此范围的开始。如果指定行号处没有可执行代码,则将返回一个空列表;具体而言,本地和抽象方法将始终返回一个空列表。
返回的列表是针对指定的stratum(请参阅Location以获取strata的描述)。
- 参数:
-
stratum
- 用于比较行号和源名称的stratum,或null以使用默认stratum -
sourceName
- 包含行号的源名称,或null以匹配所有源名称 -
lineNumber
- 行号 - 返回:
- 返回映射到给定行号的Location对象的列表。
- 抛出:
-
AbsentInformationException
- 如果此方法没有行号信息。或者如果sourceName不是null
,并且不存在源名称信息。 - 自1.4版本起:
- 1.4
-
locationOfCodeIndex
返回给定代码索引的Location。- 返回:
- 返回与给定代码索引对应的Location,如果指定的代码索引对于此方法无效,则返回null(本地和抽象方法将始终返回null)。
-
variables
返回一个列表,其中包含在此方法中声明的每个LocalVariable。列表包括在方法内的任何范围内声明的任何变量。它可能包含在不同范围内声明的相同名称的多个变量。参数被视为局部变量,并将出现在返回的列表中。如果局部变量信息不可用,则可以通过使用方法StackFrame.getArgumentValues()
获取方法调用的实际参数值- 返回:
- 反映目标VM中此方法中声明的局部变量的LocalVariable对象列表。如果没有局部变量,则返回一个长度为零的列表。
- 抛出:
-
AbsentInformationException
- 如果此方法没有变量信息。通常,本地或抽象方法不提供局部变量信息(即,它们的参数名称信息不可用),因此它们将抛出此异常。
-
variablesByName
返回一个列表,其中包含此方法中给定名称的每个LocalVariable。如果在方法内的不同范围内使用相同的变量名称,则可能返回多个变量。- 返回:
- 给定名称的LocalVariable对象列表。如果没有匹配的局部变量,则返回一个长度为零的列表。
- 抛出:
-
AbsentInformationException
- 如果此方法没有变量信息。通常,本地或抽象方法不提供局部变量信息(即,它们的参数名称信息不可用),因此它们将抛出此异常。
-
arguments
返回一个列表,其中包含作为此方法参数声明的每个LocalVariable。如果局部变量信息不可用,则可以通过使用方法StackFrame.getArgumentValues()
获取方法调用的实际参数值- 返回:
- 参数的LocalVariable列表。如果没有参数,则返回一个长度为零的列表。
- 抛出:
-
AbsentInformationException
- 如果此方法没有变量信息。通常,本地或抽象方法不提供局部变量信息(即,它们的参数名称信息不可用),因此它们将抛出此异常。
-
bytecodes
byte[] bytecodes()返回包含此方法字节码的数组。并非所有目标虚拟机都支持此操作。使用
VirtualMachine.canGetBytecodes()
来确定是否支持该操作。- 返回:
- 字节码数组;抽象和本地方法将返回一个长度为零的数组。
- 抛出:
-
UnsupportedOperationException
- 如果目标虚拟机不支持检索字节码。
-
location
Location location()如果与此方法关联可执行代码,则返回此方法的Location。 -
equals
将指定的对象与此方法进行比较以确定它们是否相等。 -
hashCode
int hashCode()返回此方法的哈希码值。
-