-
- 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()返回一个包含此方法的字节码的数组。booleanequals(Object obj)将指定的Object与此方法进行比较以实现相等。inthashCode()返回此方法的哈希码值。booleanisAbstract()确定这个方法是否是抽象的。booleanisBridge()确定此方法是否为桥接方法。booleanisConstructor()确定这个方法是否是一个构造函数。default booleanisDefault()确定此方法是否为默认方法booleanisNative()确定此方法是否为本机。booleanisObsolete()确定此方法是否已过时。booleanisStaticInitializer()确定此方法是否为静态初始化程序。booleanisSynchronized()确定此方法是否同步。booleanisVarArgs()确定此方法是否接受可变数量的参数。Locationlocation()返回此方法的Location,如果有可执行代码与之相关联。LocationlocationOfCodeIndex(long codeIndex)为给定的代码索引返回一个Location。List<Location>locationsOfLine(int lineNumber)返回包含映射到给定行号的所有Location对象的列表。List<Location>locationsOfLine(String stratum, String sourceName, int lineNumber)返回包含映射到给定行号和源名称的所有Location对象的列表。TypereturnType()返回返回类型,如该方法的声明所指定。StringreturnTypeName()返回返回类型的文本表示形式,如该方法的声明所指定。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)
-
-