-
- 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()
返回包含此方法的字节码的数组。boolean
equals(Object obj)
将指定的Object与此方法进行比较以获得相等性。int
hashCode()
返回此Method的哈希码值。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)
返回一个List,其中包含映射到给定行号的所有Location
个对象。List<Location>
locationsOfLine(String stratum, String sourceName, int lineNumber)
返回包含映射到给定行号和源名称的所有Location
对象的List。Type
returnType()
返回此方法声明中指定的返回类型。String
returnTypeName()
返回返回类型的文本表示形式,如此方法的声明中所指定。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)
-
-