-
- All Superinterfaces:
-
Accessible,Comparable<方法>,Locatable,Mirror,TypeComponent
public interface 方法 extends TypeComponent, Locatable, Comparable<方法>
目标VM中的静态或实例方法。 有关Field和Method镜像的一般信息,请参见TypeComponent。- 从以下版本开始:
- 1.3
- 另请参见:
-
ObjectReference,ReferenceType
-
-
方法摘要
所有方法 实例方法 抽象方法 Default Methods 变量和类型 方法 描述 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()返回此Method的哈希码值。booleanisAbstract()确定此方法是否为抽象方法。booleanisBridge()确定此方法是否为桥接方法。booleanisConstructor()确定此方法是否为构造函数。default booleanisDefault()确定此方法是否为默认方法booleanisNative()确定此方法是否为本机方法。booleanisObsolete()确定此方法是否已过时。booleanisStaticInitializer()确定此方法是否为静态初始值设定项。booleanisSynchronized()确定此方法是否已同步。booleanisVarArgs()确定此方法是否接受可变数量的参数。Locationlocation()如果存在与之关联的可执行代码,则返回此方法的Location。LocationlocationOfCodeIndex(long codeIndex)返回给定代码索引的Location。List<Location>locationsOfLine(int lineNumber)返回一个List,其中包含映射到给定行号的所有Location个对象。List<Location>locationsOfLine(String stratum, String sourceName, int lineNumber)返回包含映射到给定行号和源名称的所有Location对象的List。TypereturnType()返回此方法声明中指定的返回类型。StringreturnTypeName()返回返回类型的文本表示形式,如此方法的声明中所指定。List<LocalVariable>variables()返回包含此方法中声明的每个LocalVariable的列表。List<LocalVariable>variablesByName(String name)返回包含此方法中给定名称的每个LocalVariable的列表。-
声明方法的接口 com.sun.jdi.Accessible
isPackagePrivate, isPrivate, isProtected, isPublic, modifiers
-
声明方法的接口 java.lang.Comparable
compareTo
-
声明方法的接口 com.sun.jdi.Mirror
toString, virtualMachine
-
声明方法的接口 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()
确定此方法是否为抽象方法。- 结果
-
true如果方法被声明为abstract; 否则为false。
-
isDefault
default boolean isDefault()
确定此方法是否为默认方法- 结果
-
true如果该方法被声明为默认值; 否则为false。 - 从以下版本开始:
- 1.8
-
isSynchronized
boolean isSynchronized()
确定此方法是否已同步。- 结果
-
true如果声明方法同步; 否则为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已将该行映射到两个或更多个不相交的代码索引范围,则返回的列表可包含特定行号的多个位置。
如果方法是本机方法或抽象方法,则返回空列表。
返回列表用于指定的层 (有关层的描述,请参阅
Location)。- 参数
-
stratum-该层来检索或信息null为ReferenceType.defaultStratum() -
sourceName- 仅返回此源文件或null中的位置以返回位置。 - 结果
-
所有源行
Location对象的列表。 - 异常
-
AbsentInformationException- 如果此(非本机,非抽象)方法没有行号信息。 或者,如果SOURCENAME是非null和源名信息不存在。 - 从以下版本开始:
- 1.4
-
locationsOfLine
List<Location> locationsOfLine(int lineNumber) throws AbsentInformationException
返回一个List,其中包含映射到给定行号的所有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
返回一个List,其中包含映射到给定行号和源名称的所有Location对象。返回包含映射到给定行的每个
Location的列表。 返回的列表将包含编译器和/或VM已分配给给定行的每个不相交的代码索引范围的位置。 每个返回的位置对应于此范围的开头。 如果指定的行号没有可执行代码,则返回空列表; 特别是,native和abstract方法总是返回一个空列表。返回列表用于指定的层 (有关层的描述,请参阅
Location)。- 参数
-
stratum- 用于比较行号和源名称的层,或null用于使用默认层 -
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()
返回此Method的哈希码值。- 重写:
-
hashCode在类Object - 结果
- 整数哈希码。
- 另请参见:
-
Object.equals(java.lang.Object),System.identityHashCode(java.lang.Object)
-
-