-
- All Superinterfaces:
-
Accessible
,Comparable<方法>
,Locatable
,Mirror
,TypeComponent
public interface 方法 extends TypeComponent, Locatable, Comparable<方法>
目标VM中的静态或实例方法。 有关Field和Method镜像的一般信息,请参阅TypeComponent
。- 从以下版本开始:
- 1.3
- 另请参见:
-
ObjectReference
,ReferenceType
-
-
方法摘要
所有方法 接口方法 抽象方法 Default Methods Modifier and Type 方法 描述 List<Location>
allLineLocations()
在此方法中为每个可执行源行返回一个包含一个Location
对象的列表。List<Location>
allLineLocations(String stratum, String sourceName)
在此方法中为每个可执行源行返回一个包含Location
对象的列表。List<LocalVariable>
arguments()
返回一个列表,其中包含声明为此方法的参数的每个LocalVariable
。List<String>
argumentTypeNames()
返回一个包含此方法的每个形式参数类型的文本表示的列表。List<Type>
argumentTypes()
返回一个包含此方法的每个形式参数类型的列表。byte[]
bytecodes()
返回一个包含此方法的字节码的数组。boolean
equals(Object obj)
将指定的Object与此方法进行比较以实现相等。int
hashCode()
返回此方法的哈希码值。boolean
isAbstract()
确定这个方法是否是抽象的。boolean
isBridge()
确定此方法是否为桥接方法。boolean
isConstructor()
确定这个方法是否是一个构造函数。default boolean
isDefault()
确定此方法是否为默认方法boolean
isNative()
确定此方法是否为本机。boolean
isObsolete()
确定此方法是否已过时。boolean
isStaticInitializer()
确定此方法是否为静态初始化程序。boolean
isSynchronized()
确定此方法是否同步。boolean
isVarArgs()
确定此方法是否接受可变数量的参数。Location
location()
返回此方法的Location
,如果有可执行代码与之相关联。Location
locationOfCodeIndex(long codeIndex)
为给定的代码索引返回一个Location
。List<Location>
locationsOfLine(int lineNumber)
返回包含映射到给定行号的所有Location
对象的列表。List<Location>
locationsOfLine(String stratum, String sourceName, int lineNumber)
返回包含映射到给定行号和源名称的所有Location
对象的列表。Type
returnType()
返回返回类型,如该方法的声明所指定。String
returnTypeName()
返回返回类型的文本表示形式,如该方法的声明所指定。List<LocalVariable>
variables()
返回包含此方法中声明的每个LocalVariable
的列表。List<LocalVariable>
variablesByName(String name)
在此方法中返回包含给定名称的每个LocalVariable
的列表。-
Methods inherited from interface com.sun.jdi.Accessible
isPackagePrivate, isPrivate, isProtected, isPublic, modifiers
-
Methods inherited from interface java.lang.Comparable
compareTo
-
Methods inherited from interface com.sun.jdi.Mirror
toString, virtualMachine
-
Methods inherited from interface com.sun.jdi.TypeComponent
declaringType, genericSignature, isFinal, isStatic, isSynthetic, name, signature
-
-
-
-
方法详细信息
-
returnTypeName
String returnTypeName()
返回返回类型的文本表示形式,如该方法的声明所指定。即使类型尚未创建或加载,此类型名称始终可用。
- 结果
-
一个包含返回类型名称的
String
。
-
returnType
Type returnType() throws ClassNotLoadedException
返回返回类型,如该方法的声明所指定。注意:如果此方法的返回类型是引用类型(类,接口或数组),并且尚未由声明类型的类加载器(即
declaringType()
.classLoader()
)创建或加载,则将抛出ClassNotLoadedException异常。 此外,引用类型可能已经加载但尚未准备好,在这种情况下,类型将被返回,但是尝试对返回的类型执行某些操作(例如,fields()
)将抛出一个ClassNotPreparedException
。 使用ReferenceType.isPrepared()
确定是否准备了引用类型。- 结果
-
该方法的返回值为
Type
。 - 异常
-
ClassNotLoadedException
- 如果类型尚未通过适当的类加载器创建或加载。 - 另请参见:
-
Type
,Field.type() - for usage examples
-
argumentTypeNames
List<String> argumentTypeNames()
返回一个包含此方法的每个形式参数类型的文本表示的列表。即使类型尚未创建或加载,此列表始终可用。
-
argumentTypes
List<Type> argumentTypes() throws ClassNotLoadedException
返回一个包含此方法的每个形式参数类型的列表。注意:如果存在类型为引用类型(类,接口或数组)的任何参数,并且尚未由声明类型的类加载器(即
declaringType()
.classLoader()
)创建或加载,则将抛出ClassNotLoadedException。 此外,引用类型可能已经加载但尚未准备好,在这种情况下,列表将被返回,但尝试对类型执行某些操作(例如,fields()
)将抛出一个ClassNotPreparedException
。 使用ReferenceType.isPrepared()
来确定是否准备了引用类型。- 结果
-
返回一个
List
的Type
,这个方法的每个参数的一个List元素。 每个元素表示在编译时指定的形式参数的类型。 如果使用省略号声明了形式参数,则将其表示为省略号之前的类型的数组。 - 异常
-
ClassNotLoadedException
- 如果类型尚未通过适当的类加载器加载。 - 另请参见:
-
Type
-
isAbstract
boolean isAbstract()
确定这个方法是否是抽象的。- 结果
-
如果方法声明为abstract,
true
; 否则为false
。
-
isDefault
default boolean isDefault()
确定此方法是否为默认方法- 结果
-
true
如果方法声明为default;false
否则。 - 从以下版本开始:
- 1.8
-
isSynchronized
boolean isSynchronized()
确定此方法是否同步。- 结果
-
true
如果方法被声明为synchronized;false
否则。
-
isNative
boolean isNative()
确定此方法是否为本机。- 结果
-
true
如果方法被声明为native; 否则为false
。
-
isVarArgs
boolean isVarArgs()
确定此方法是否接受可变数量的参数。- 结果
-
true
如果方法接受可变数量的参数,否则为false
。 - 从以下版本开始:
- 1.5
-
isBridge
boolean isBridge()
确定此方法是否为桥接方法。 桥接方法在The Java™ Language Specification中定义。- 结果
-
true
如果方法是桥接方法,否则为false
。 - 从以下版本开始:
- 1.5
-
isConstructor
boolean isConstructor()
确定这个方法是否是一个构造函数。- 结果
-
true
如果方法是一个构造函数;false
否则。
-
isStaticInitializer
boolean isStaticInitializer()
确定此方法是否为静态初始化程序。- 结果
-
true
如果方法是一个静态的初始化器; 否则为false
。
-
isObsolete
boolean isObsolete()
确定此方法是否已过时。- 结果
-
true
如果此方法已被VirtualMachine.redefineClasses(java.util.Map<? extends com.sun.jdi.ReferenceType, byte[]>)
操作过时。 - 从以下版本开始:
- 1.4
-
allLineLocations
List<Location> allLineLocations() throws AbsentInformationException
在此方法中为每个可执行源行返回一个包含一个Location
对象的列表。此方法相当于
allLineLocations(vm.getDefaultStratum(),null)
- 有关详细信息,请参阅allLineLocations(String,String)
。- 结果
-
所有源码列表
Location
对象。 - 异常
-
AbsentInformationException
- 如果没有这个(非本地的,非抽象的)方法的行号信息。
-
allLineLocations
List<Location> allLineLocations(String stratum, String sourceName) throws AbsentInformationException
在此方法中为每个可执行源行返回一个包含Location
对象的列表。每个位置将源行映射到一系列代码索引。 范围的开始可以通过
Location.codeIndex()
确定。 返回的列表按代码索引(从低到高)排序。如果编译器和/或VM将该行映射到两个或更多个不相交的代码索引范围,则返回的列表可能包含特定行号的多个位置。
如果该方法是native或abstract,则返回一个空列表。
返回的列表是指定的层次 (有关层的描述,请参阅
Location
)。- 参数
-
stratum
- 从null
或null
检索信息的 层次 -
sourceName
- 仅返回此源文件中的位置或null
返回位置。 - 结果
-
所有源代码行列表
Location
对象。 - 异常
-
AbsentInformationException
- 如果此(非本地,非抽象)方法没有行号信息。 或者,如果SOURCENAME是非null
和源名信息不存在。 - 从以下版本开始:
- 1.4
-
locationsOfLine
List<Location> locationsOfLine(int lineNumber) throws AbsentInformationException
返回包含映射到给定行号的所有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分配给给定行的每个不相交的代码索引范围的位置。 每个返回的位置对应于此范围的开始。 如果指定的行号没有可执行代码,将返回一个空列表; 具体来说,本机和抽象方法将始终返回一个空列表。返回的列表是指定的层次 (有关层的描述,请参阅
Location
)。- 参数
-
stratum
- 用于比较行号和源名称的层次,或使用默认层次的层次 -
sourceName
- 包含行号的源名称,或null以匹配所有源名称 -
lineNumber
- 行号 - 结果
-
一个
Location
对象的列表,映射到给定的行号。 - 异常
-
AbsentInformationException
- 如果此方法没有行号信息。 或者,如果SOURCENAME是非null
和源名信息不存在。 - 从以下版本开始:
- 1.4
-
locationOfCodeIndex
Location locationOfCodeIndex(long codeIndex)
为给定的代码索引返回一个Location
。- 结果
-
Location
对应于给定的代码索引,如果指定的代码索引不是此方法的有效代码索引,则为null(本机和抽象方法将始终返回null)。
-
variables
List<LocalVariable> variables() throws AbsentInformationException
返回包含此方法中声明的每个LocalVariable
的列表。 该列表包括在方法中任何范围内声明的任何变量。 它可能包含在不相交的范围内声明的同名的多个变量。 参数被认为是局部变量,并将返回到列表中。 如果局部变量信息不可用,方法调用的实际参数的值可以通过使用方法StackFrame.getArgumentValues()
- 结果
-
LocalVariable
对象的列表, 该对象镜像目标VM中此方法中声明的局部变量。 如果没有局部变量,则返回零长度列表。 - 异常
-
AbsentInformationException
- 如果此方法没有变量信息。 通常,局部变量信息不适用于本地或抽象方法(即,它们的参数名称信息不可用),因此它们将抛出该异常。
-
variablesByName
List<LocalVariable> variablesByName(String name) throws AbsentInformationException
在此方法中返回包含给定名称的每个LocalVariable
的列表。 如果在方法中的不相交的范围内使用相同的变量名,则可以返回多个变量。- 结果
-
给定名称的
LocalVariable
对象的列表。 如果没有匹配的局部变量,则返回零长度列表。 - 异常
-
AbsentInformationException
- 如果此方法没有变量信息。 通常,局部变量信息不适用于本地或抽象方法(即,它们的参数名称信息不可用),因此它们将抛出该异常。
-
arguments
List<LocalVariable> arguments() throws AbsentInformationException
返回一个列表,其中包含声明为此方法的参数的每个LocalVariable
。 如果局部变量信息不可用,方法调用的实际参数的值可以通过使用方法StackFrame.getArgumentValues()
- 结果
-
列表
LocalVariable
参数。 如果没有参数,则返回零长度列表。 - 异常
-
AbsentInformationException
- 如果此方法没有变量信息。 通常,局部变量信息不适用于本地或抽象方法(即,它们的参数名称信息不可用),因此它们将抛出该异常。
-
bytecodes
byte[] bytecodes()
返回一个包含此方法的字节码的数组。并非所有目标虚拟机都支持此操作。 使用
VirtualMachine.canGetBytecodes()
确定是否支持该操作。- 结果
- 字节码阵列; 抽象和本机方法将返回一个零长度的数组。
- 异常
-
UnsupportedOperationException
- 如果目标虚拟机不支持检索字节码。
-
equals
boolean equals(Object obj)
将指定的Object与此方法进行比较以实现相等。- 重写:
-
equals
在Object
- 参数
-
obj
- 与之比较的参考对象。 - 结果
- 如果Object是一个方法,并且如果两个镜像都是相同的方法(在同一个VM中的同一个类或接口中声明),则为true。
- 另请参见:
-
Object.hashCode()
,HashMap
-
hashCode
int hashCode()
返回此方法的哈希码值。- 重写:
-
hashCode
在Object
- 结果
- 整数哈希码。
- 另请参见:
-
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
-
-