java.lang.Object
java.lang.reflect.AccessibleObject
java.lang.reflect.Executable
- 所有已实现的接口:
AnnotatedElement,GenericDeclaration,Member
- 已知子类:
Constructor,Method
public abstract sealed class Executable extends AccessibleObject implements Member , GenericDeclaration permits 构造方法 <T>, Method
Method 和 Constructor 的通用功能的共享超类。
- 自从:
- 1.8
-
字段摘要
-
方法总结
修饰符和类型方法描述返回此对象表示的可执行文件的不可修改的 访问标志 集,可能为空。返回一个AnnotatedType对象数组,这些对象表示使用类型来指定此可执行文件表示的方法/构造函数的声明异常。返回一个AnnotatedType对象数组,这些对象表示使用类型来指定此可执行文件表示的方法/构造函数的正式参数类型。返回一个AnnotatedType对象,该对象表示使用一种类型来指定此Executable对象表示的方法/构造函数的接收者类型。abstract AnnotatedType返回一个AnnotatedType对象,该对象表示使用一种类型来指定此可执行文件表示的方法/构造函数的返回类型。<T extends Annotation>
TgetAnnotation(Class<T> annotationClass) 如果此类注解为 present ,则返回此元素针对指定类型的注解,否则为 null。<T extends Annotation>
T[]getAnnotationsByType(Class<T> annotationClass) 返回带有此元素的 associated 注释。返回此元素上的 directly present 注释。abstract Class<?>返回表示声明此对象表示的可执行文件的类或接口的Class对象。abstract Class<?>[]返回一个Class对象数组,这些对象表示声明由该对象表示的底层可执行文件抛出的异常类型。Type[]返回一个Type对象数组,这些对象表示声明将由此可执行对象抛出的异常。Type[]返回一个Type对象数组,这些对象按声明顺序表示此对象表示的可执行文件的形式参数类型。abstract int返回此对象表示的可执行文件的 Java 语言 modifiers。abstract StringgetName()返回此对象表示的可执行文件的名称。abstract Annotation[][]返回Annotation数组的数组,这些数组表示形式参数上的注释,按声明顺序,由该对象表示的Executable。abstract int返回此对象表示的可执行文件的形式参数(无论是显式声明还是隐式声明或两者都不是)的数量。返回一个Parameter对象数组,表示此对象表示的底层可执行文件的所有参数。abstract Class<?>[]返回一个Class对象数组,这些对象按声明顺序表示此对象表示的可执行文件的形式参数类型。abstract TypeVariable<?>[]返回一个TypeVariable对象数组,这些对象表示由此GenericDeclaration对象表示的泛型声明所声明的类型变量,按声明顺序排列。boolean如果此可执行文件是合成构造,则返回true;否则返回false。boolean如果此可执行文件被声明为采用可变数量的参数,则返回true;否则返回false。abstract String返回描述此Executable的字符串,包括任何类型参数。在类 java.lang.reflect.AccessibleObject 中声明的方法
canAccess, getAnnotations, getDeclaredAnnotation, getDeclaredAnnotations, getDeclaredAnnotationsByType, isAccessible, isAnnotationPresent, setAccessible, setAccessible, trySetAccessible在类 java.lang.Object 中声明的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait在接口 java.lang.reflect.AnnotatedElement 中声明的方法
getAnnotations, getDeclaredAnnotation, getDeclaredAnnotationsByType, isAnnotationPresent
-
方法详情
-
getDeclaringClass
返回表示声明此对象表示的可执行文件的类或接口的Class对象。- 指定者:
getDeclaringClass在接口Member中- 返回:
- 表示底层成员的声明类的对象
-
getName
返回此对象表示的可执行文件的名称。 -
getModifiers
public abstract int getModifiers()返回此对象表示的可执行文件的 Java 语言 modifiers。- 指定者:
getModifiers在接口Member中- 返回:
- 此对象表示的可执行文件的 Java 语言 modifiers
- 参见:
-
accessFlags
返回此对象表示的可执行文件的不可修改的 访问标志 集,可能为空。- 指定者:
accessFlags在接口Member中- 返回:
- 此对象表示的可执行文件的不可修改的 访问标志 集,可能为空
- 看Java 虚拟机规范:
-
4.6 方法
- 自从:
- 20
- 参见:
-
getTypeParameters
返回一个TypeVariable对象数组,这些对象表示由此GenericDeclaration对象表示的泛型声明所声明的类型变量,按声明顺序排列。如果基础泛型声明未声明类型变量,则返回长度为 0 的数组。- 指定者:
getTypeParameters在接口GenericDeclaration中- 返回:
-
一个
TypeVariable对象数组,表示此泛型声明所声明的类型变量 - 抛出:
GenericSignatureFormatError- 如果此通用声明的通用签名不符合中指定的格式Java 虚拟机规范
-
getParameterTypes
返回一个Class对象数组,这些对象按声明顺序表示此对象表示的可执行文件的形式参数类型。如果底层可执行文件不带参数,则返回长度为 0 的数组。请注意,某些内部类的构造函数除了显式声明的参数外,还可能具有隐式声明的参数。- 返回:
- 此对象表示的可执行文件的参数类型
-
getParameterCount
public abstract int getParameterCount()返回此对象表示的可执行文件的形式参数(无论是显式声明还是隐式声明或两者都不是)的数量。- 返回:
- 此对象表示的可执行文件的形参数量
-
getGenericParameterTypes
返回一个Type对象数组,这些对象按声明顺序表示此对象表示的可执行文件的形式参数类型。如果底层可执行文件不带参数,则返回长度为 0 的数组。请注意,某些内部类的构造函数除了显式声明的参数外,还可能具有隐式声明的参数。另请注意,作为 建模神器 ,返回参数的数量可能会有所不同,具体取决于是否存在通用信息。如果存在通用信息,则仅返回源中明确存在的参数;如果不存在通用信息,则也可以返回隐式和合成参数。如果形式参数类型是参数化类型,则为其返回的
Type对象必须准确反映源代码中使用的实际类型参数。如果形式参数类型是类型变量或参数化类型,则创建它。否则,它被解决了。
- 返回:
-
一个
Type数组,表示底层可执行文件的形式参数类型,按声明顺序排列 - 抛出:
GenericSignatureFormatError- 如果泛型方法签名不符合指定的格式Java 虚拟机规范TypeNotPresentException- 如果底层可执行文件的任何参数类型引用不存在的类型声明MalformedParameterizedTypeException- 如果任何底层可执行文件的参数类型引用了由于任何原因无法实例化的参数化类型
-
getParameters
返回一个Parameter对象数组,表示此对象表示的底层可执行文件的所有参数。如果可执行文件没有参数,则返回长度为 0 的数组。底层可执行文件的参数不一定具有唯一名称,或者名称是 Java 编程语言 (JLS 3.8) 中的合法标识符。
- 返回:
-
一个
Parameter对象数组,表示此对象表示的底层可执行文件的所有参数 - 抛出:
MalformedParametersException- 如果类文件包含格式不正确的 MethodParameters 属性。
-
getExceptionTypes
返回一个Class对象数组,这些对象表示声明由该对象表示的底层可执行文件抛出的异常类型。如果可执行文件在其throws子句中声明没有异常,则返回一个长度为 0 的数组。- 返回:
- 声明为由此对象表示的可执行文件抛出的异常类型
-
getGenericExceptionTypes
返回一个Type对象数组,这些对象表示声明将由此可执行对象抛出的异常。如果底层可执行文件在其throws子句中声明没有异常,则返回一个长度为 0 的数组。如果异常类型是类型变量或参数化类型,则创建它。否则,它被解决了。
- 返回:
- 表示底层可执行文件抛出的异常类型的 Types 数组
- 抛出:
GenericSignatureFormatError- 如果泛型方法签名不符合指定的格式Java 虚拟机规范TypeNotPresentException- 如果底层可执行文件的throws子句引用不存在的类型声明MalformedParameterizedTypeException- 如果底层可执行文件的throws子句引用了由于任何原因无法实例化的参数化类型
-
toGenericString
返回描述此Executable的字符串,包括任何类型参数。- 返回:
-
描述此
Executable的字符串,包括任何类型参数
-
isVarArgs
public boolean isVarArgs()如果此可执行文件被声明为采用可变数量的参数,则返回true;否则返回false。- 返回:
true如果此可执行文件被声明为采用可变数量的参数;否则返回false
-
isSynthetic
public boolean isSynthetic()如果此可执行文件是合成构造,则返回true;否则返回false。- 指定者:
isSynthetic在接口Member中- 返回:
- 当且仅当此可执行文件是一个合成构造时才为真Java 语言规范.
- 看Java 语言规范:
-
13.1 二进制形式
- 看Java 虚拟机规范:
-
4.6 方法
-
getParameterAnnotations
返回Annotation数组的数组,这些数组表示形式参数上的注释,按声明顺序,由该对象表示的Executable。合成参数和强制参数(参见下面的解释),例如内部类构造函数的外部“this”参数将在返回的数组中表示。如果可执行文件没有参数(意味着没有正式的、没有综合的、没有强制的参数),将返回一个零长度数组。如果Executable有一个或多个参数,则为每个没有注释的参数返回一个长度为零的嵌套数组。返回数组中包含的注释对象是可序列化的。该方法的调用者可以自由修改返回的数组;它不会影响返回给其他调用者的数组。编译器可能会在方法的参数列表中添加在源代码中隐式声明的额外参数(“强制”),以及在源代码中既没有隐式声明也没有显式声明的参数(“合成”)。有关详细信息,请参阅Parameter。请注意,此方法返回的任何注释都是声明注解。
- 返回:
- 一个数组数组,表示此对象表示的可执行文件的形式参数和隐式参数的注释,按声明顺序排列
- 参见:
-
getAnnotation
如果此类注解为 present ,则返回此元素针对指定类型的注解,否则为 null。请注意,此方法返回的任何注解都是声明注解。
- 指定者:
getAnnotation在接口AnnotatedElement中- 重写:
getAnnotation在类AccessibleObject中- 类型参数:
T- 要查询并返回的注释类型(如果存在)- 参数:
annotationClass——注解类型对应的Class对象- 返回:
- 如果此元素上存在此元素的指定注解类型的注解,则为 null
- 抛出:
NullPointerException- 如果给定的注释类为 null
-
getAnnotationsByType
返回带有此元素的 associated 注释。如果这个元素没有注解associated,返回值是一个长度为0的数组。这个方法和AnnotatedElement.getAnnotation(Class)的区别是这个方法检测它的参数是否是一个repeatable annotation type(JLS 9.6),如果是,则尝试寻找通过“查看”容器注解来查看该类型的一个或多个注释。该方法的调用者可以自由修改返回的数组;它不会影响返回给其他调用者的数组。请注意,此方法返回的任何注释都是声明注解。
- 指定者:
getAnnotationsByType在接口AnnotatedElement中- 重写:
getAnnotationsByType在类AccessibleObject中- 类型参数:
T- 要查询并返回的注释类型(如果存在)- 参数:
annotationClass——注解类型对应的Class对象- 返回:
- 如果与此元素相关联,则为指定注解类型的所有此元素的注释,否则为长度为零的数组
- 抛出:
NullPointerException- 如果给定的注释类为 null
-
getDeclaredAnnotations
返回此元素上的 directly present 注释。此方法忽略继承的注释。如果该元素上没有注解directly present,则返回值为长度为0的数组。该方法的调用者可以自由修改返回的数组;它不会影响返回给其他调用者的数组。请注意,此方法返回的任何注释都是声明注解。
- 指定者:
getDeclaredAnnotations在接口AnnotatedElement中- 重写:
getDeclaredAnnotations在类AccessibleObject中- 返回:
- 注释直接出现在这个元素上
-
getAnnotatedReturnType
返回一个AnnotatedType对象,该对象表示使用一种类型来指定此可执行文件表示的方法/构造函数的返回类型。如果这个Executable对象表示构造函数,那么AnnotatedType对象表示构造对象的类型。如果这个Executable对象代表一个方法,那么AnnotatedType对象代表使用一个类型来指定方法的返回类型。- 返回:
-
表示此
Executable表示的方法或构造函数的返回类型的对象
-
getAnnotatedReceiverType
返回一个AnnotatedType对象,该对象表示使用一种类型来指定此Executable对象表示的方法/构造函数的接收者类型。仅当方法/构造函数具有接收者参数 (JLS 8.4.1) 时,方法/构造函数的接收者类型才可用。如果此Executable对象 represents an instance method or represents a constructor of an inner member class 和方法/构造函数 either 没有接收者参数或接收者参数在其类型上没有注释,则返回值是一个AnnotatedType对象,代表一个没有注释的元素。如果此Executable对象表示静态方法或表示顶级、静态成员、本地或匿名类的构造函数,则返回值为 null。- 返回:
-
表示由 this
Executable或null表示的方法或构造函数的接收者类型的对象,如果 thisExecutable不能有接收者参数 - 看Java 语言规范:
-
8.4 方法声明
8.4.1 形式参数
8.8 构造函数声明
-
getAnnotatedParameterTypes
返回一个AnnotatedType对象数组,这些对象表示使用类型来指定此可执行文件表示的方法/构造函数的正式参数类型。数组中对象的顺序对应于方法/构造函数声明中形参类型的顺序。如果方法/构造函数未声明参数,则返回长度为 0 的数组。请注意,某些内部类的构造函数除了显式声明的参数外,还可能具有隐式声明的参数。- 返回:
-
表示此
Executable表示的方法或构造函数的形参类型的对象数组
-
getAnnotatedExceptionTypes
返回一个AnnotatedType对象数组,这些对象表示使用类型来指定此可执行文件表示的方法/构造函数的声明异常。数组中对象的顺序对应于方法/构造函数声明中异常类型的顺序。如果方法/构造函数声明没有异常,则返回长度为 0 的数组。- 返回:
-
表示此
Executable表示的方法或构造函数的已声明异常的对象数组
-