- java.lang.Object
-
- java.lang.reflect.AccessibleObject
-
- java.lang.reflect.Executable
-
- All Implemented Interfaces:
-
AnnotatedElement
,GenericDeclaration
,Member
- 已知直接子类:
-
Constructor
,方法
public abstract class Executable extends AccessibleObject implements Member, GenericDeclaration
共享超类的共同功能为方法
和Constructor
。- 从以下版本开始:
- 1.8
-
-
方法摘要
所有方法 接口方法 抽象方法 具体的方法 Modifier and Type 方法 描述 AnnotatedType[]
getAnnotatedExceptionTypes()
返回一个AnnotatedType
对象的数组,表示使用类型来指定由此可执行文件表示的方法/构造函数声明的异常。AnnotatedType[]
getAnnotatedParameterTypes()
返回一个AnnotatedType
对象的数组,表示使用类型来指定此可执行文件所表示的方法/构造函数的形式参数类型。AnnotatedType
getAnnotatedReceiverType()
返回一个AnnotatedType
对象,表示使用类型来指定由该Executable
对象表示的方法/构造函数的接收器类型。abstract AnnotatedType
getAnnotatedReturnType()
返回一个AnnotatedType
对象,表示使用类型来指定此可执行文件所表示的方法/构造函数的返回类型。<T extends Annotation>
TgetAnnotation(Class<T> annotationClass)
返回该元素的,如果这样的注释 ,否则返回null指定类型的注释。<T extends Annotation>
T[]getAnnotationsByType(Class<T> annotationClass)
返回与此元素 相关联的注释。Annotation[]
getDeclaredAnnotations()
返回 直接存在于此元素上的注释。abstract Class<?>
getDeclaringClass()
返回表示由该对象表示的可执行文件的类或接口的Class
对象。abstract Class<?>[]
getExceptionTypes()
返回一个Class
对象的数组,表示由该对象表示的底层可执行文件所声明的异常类型。Type[]
getGenericExceptionTypes()
返回一个Type
对象的数组,它们表示声明为可执行对象抛出的异常。Type[]
getGenericParameterTypes()
返回一个Type
对象的数组,Type
以声明顺序表示由该对象表示的可执行文件的形式参数类型。abstract int
getModifiers()
返回由该对象表示的可执行文件的Java语言modifiers 。abstract String
getName()
返回由此对象表示的可执行文件的名称。abstract Annotation[][]
getParameterAnnotations()
返回一个Annotation
s的数组数组,表示由该对象表示的Executable
的形式参数的声明顺序。int
getParameterCount()
返回由此对象表示的可执行文件的形式参数(无论是显式声明还是隐式声明)的数量。Parameter[]
getParameters()
返回一个Parameter
对象的数组,表示由该对象表示的底层可执行文件的所有参数。abstract Class<?>[]
getParameterTypes()
返回一个Class
对象的数组,表示由该对象表示的可执行文件的声明顺序的形式参数类型。abstract TypeVariable<?>[]
getTypeParameters()
返回一个TypeVariable
对象的数组,表示由该GenericDeclaration
对象表示的通用声明声明的类型变量,声明顺序。boolean
isSynthetic()
如果这个可执行文件是一个合成结构,则返回true
; 否则返回false
。boolean
isVarArgs()
如果这个可执行文件被声明为采用可变数量的参数,则返回true
; 否则返回false
。abstract String
toGenericString()
返回一个描述这个Executable
的字符串,包括任何类型的参数。-
Methods inherited from class java.lang.reflect.AccessibleObject
canAccess, getAnnotations, getDeclaredAnnotation, getDeclaredAnnotationsByType, isAccessible, isAnnotationPresent, setAccessible, setAccessible, trySetAccessible
-
Methods inherited from interface java.lang.reflect.AnnotatedElement
getAnnotations, getDeclaredAnnotation, getDeclaredAnnotationsByType, isAnnotationPresent
-
-
-
-
方法详细信息
-
getDeclaringClass
public abstract Class<?> getDeclaringClass()
返回表示由该对象表示的可执行文件的类或接口的Class
对象。- Specified by:
-
getDeclaringClass
在接口Member
- 结果
- 一个表示底层成员声明类的对象
-
getName
public abstract String getName()
返回由此对象表示的可执行文件的名称。
-
getModifiers
public abstract int getModifiers()
返回由该对象表示的可执行文件的Java语言modifiers 。- Specified by:
-
getModifiers
在接口Member
- 结果
- 底层成员的Java语言修饰符
- 另请参见:
-
Modifier
-
getTypeParameters
public abstract TypeVariable<?>[] getTypeParameters()
返回一个TypeVariable
对象的数组,TypeVariable
以声明顺序表示由该GenericDeclaration
对象表示的通用声明声明的类型变量。 如果底层通用声明不声明类型变量,则返回长度为0的数组。- Specified by:
-
getTypeParameters
在接口GenericDeclaration
- 结果
-
一个
TypeVariable
对象的数组,表示此通用声明声明的类型变量 - 异常
-
GenericSignatureFormatError
- 如果此通用声明的通用签名不符合 The Java™ Virtual Machine Specification中指定的格式
-
getParameterTypes
public abstract Class<?>[] getParameterTypes()
返回一个Class
对象的数组,表示由该对象表示的可执行文件的声明顺序的形式参数类型。 如果底层可执行文件没有参数,则返回长度为0的数组。- 结果
- 该对象表示的可执行文件的参数类型
-
getParameterCount
public int getParameterCount()
返回由此对象表示的可执行文件的形式参数(无论是显式声明还是隐式声明)的数量。- 结果
- 该对象表示的可执行文件的形式参数的数量
-
getGenericParameterTypes
public Type[] getGenericParameterTypes()
返回一个Type
对象的数组,表示由该对象表示的可执行文件的声明顺序的形式参数类型。 如果底层可执行文件没有参数,则返回长度为0的数组。如果形式参数类型是参数化类型,则
Type
返回的Type
对象必须准确反映源代码中使用的实际类型参数。如果形式参数类型是类型变量或参数化类型,则会创建它。 否则解决。
- 结果
-
一个
Type
s的数组,以声明顺序表示底层可执行文件的形式参数类型 - 异常
-
GenericSignatureFormatError
- 如果通用方法签名不符合 The Java™ Virtual Machine Specification中指定的格式 -
TypeNotPresentException
- 如果底层可执行文件的任何参数类型都是指不存在的类型声明 -
MalformedParameterizedTypeException
- 如果任何底层可执行文件的参数类型是指由于任何原因无法实例化的参数化类型
-
getParameters
public Parameter[] getParameters()
返回一个Parameter
对象的数组,表示由该对象表示的底层可执行文件的所有参数。 如果可执行文件没有参数,则返回长度为0的数组。底层可执行文件的参数不一定具有唯一的名称,或者是Java编程语言(JLS 3.8)中的合法标识符的名称。
- 结果
-
一组
Parameter
对象,表示该对象表示的可执行文件的所有参数。 - 异常
-
MalformedParametersException
- 如果类文件包含格式不正确的MethodParameters属性。
-
getExceptionTypes
public abstract Class<?>[] getExceptionTypes()
返回一个Class
对象的数组,表示由该对象表示的底层可执行文件抛出的异常类型。 如果可执行程序在其throws
子句中不声明异常,则返回长度为0的数组。- 结果
- 被该对象表示的可执行文件抛出的异常类型
-
getGenericExceptionTypes
public Type[] getGenericExceptionTypes()
返回一个Type
对象的数组,表示此可执行对象声明抛出的异常。 如果底层可执行文件在其throws
子句中声明无例外,则返回长度为0的数组。如果异常类型是类型变量或参数化类型,则会创建它。 否则解决。
- 结果
- 一组数组,表示底层可执行文件抛出的异常类型
- 异常
-
GenericSignatureFormatError
- 如果通用方法签名不符合 The Java™ Virtual Machine Specification中指定的格式 -
TypeNotPresentException
- 如果底层可执行文件的throws
子句引用不存在的类型声明 -
MalformedParameterizedTypeException
- 如果底层可执行文件的throws
子句引用了由于任何原因无法实例化的参数化类型
-
toGenericString
public abstract String toGenericString()
返回描述此Executable
的字符串,包括任何类型的参数。- 结果
-
一个描述这个
Executable
的字符串,包括任何类型的参数
-
isVarArgs
public boolean isVarArgs()
如果这个可执行文件被声明为采用可变数量的参数,则返回true
; 否则返回false
。- 结果
-
true
如果只有这个可执行文件被声明为使用可变数量的参数。
-
isSynthetic
public boolean isSynthetic()
如果此可执行文件是合成结构,则返回true
; 否则返回false
。- Specified by:
-
isSynthetic
在接口Member
- 结果
- 如果且仅当此可执行文件是由 The Java™ Language Specification定义的合成结构, 则为真 。
- See The Java™ Language Specification:
- 13.1二进制形式
-
getParameterAnnotations
public abstract Annotation[][] getParameterAnnotations()
返回一个Annotation
s的数组数组,表示由该对象表示的Executable
的形式参数的声明顺序。 合成和强制参数(见下面的说明),如内部类构造函数的外部“this”参数将在返回的数组中表示。 如果可执行文件没有参数(意思是没有正式的,没有合成的,没有强制的参数),那么将返回一个零长度的数组。 如果Executable
具有一个或多个参数,则对于没有注释的每个参数,返回长度为零的嵌套数组。 包含在返回的数组中的注释对象是可序列化的。 该方法的调用者可以自由修改返回的数组; 它将对返回给其他调用者的数组没有影响。 编译器可以添加在源(“强制”)中隐式声明的额外参数,以及在源(“合成”)中既不是隐式也不显式声明方法的参数列表的参数。 有关详细信息,请参阅Parameter
。- 结果
- 表示由该对象表示的可执行文件的声明顺序的形式和隐式参数上的注释数组
- 另请参见:
-
Parameter
,Parameter.getAnnotations()
-
getAnnotation
public <T extends Annotation> T getAnnotation(Class<T> annotationClass)
返回该元素的,如果这样的注释 ,否则返回null指定类型的注释。- Specified by:
-
getAnnotation
在接口AnnotatedElement
- 重写:
-
getAnnotation
在AccessibleObject
- 参数类型
-
T
- 要查询的注释的类型,如果存在则返回 - 参数
-
annotationClass
- 对应于注释类型的Class对象 - 结果
- 该元素的注释指定的注释类型,如果存在于此元素,否则为null
- 异常
-
NullPointerException
- 如果给定的注释类为空
-
getAnnotationsByType
public <T extends Annotation> T[] getAnnotationsByType(Class<T> annotationClass)
返回与此元素相关联的注释。 如果没有与此元素相关联的注释,则返回值为长度为0.的数组。此方法与AnnotatedElement.getAnnotation(Class)
之间的区别在于此方法检测其参数是否是可重复注释类型 (JLS 9.6),如果是,则尝试通过“查看”容器注释来查找该类型的一个或多个注释。 该方法的调用者可以自由修改返回的数组; 它将对返回给其他调用者的数组没有影响。- Specified by:
-
getAnnotationsByType
在接口AnnotatedElement
- 重写:
-
getAnnotationsByType
在AccessibleObject
- 参数类型
-
T
- 要查询的注释类型,如果存在则返回 - 参数
-
annotationClass
- 对应于注释类型的Class对象 - 结果
- 如果与此元素相关联,则指定注释类型的所有元素注释,否则为长度为零的数组
- 异常
-
NullPointerException
- 如果给定的注释类为空
-
getDeclaredAnnotations
public Annotation[] getDeclaredAnnotations()
返回直接存在于此元素上的注释。 此方法忽略继承的注释。 如果此元素上没有直接显示的注释,则返回值为长度为0的数组。此方法的调用者可以自由修改返回的数组; 它将对返回给其他调用者的数组没有影响。- Specified by:
-
getDeclaredAnnotations
在接口AnnotatedElement
- 重写:
-
getDeclaredAnnotations
在AccessibleObject
- 结果
- 此元素上直接显示的注释
-
getAnnotatedReturnType
public abstract AnnotatedType getAnnotatedReturnType()
返回一个AnnotatedType
对象,该对象表示使用类型来指定此可执行文件所表示的方法/构造函数的返回类型。 如果此Executable
对象表示构造函数,则表示构造的对象的类型为AnnotatedType
。 如果这个Executable
对象表示一个方法,AnnotatedType
对象表示使用一个类型来指定方法的返回类型。- 结果
-
表示由该
Executable
表示的方法或构造函数的返回类型的对象
-
getAnnotatedReceiverType
public AnnotatedType getAnnotatedReceiverType()
返回一个AnnotatedType
对象,表示使用类型来指定由该Executable
对象表示的方法/构造函数的接收器类型。 只有方法/构造函数具有接收器参数(JLS 8.4.1),方法/构造函数的接收器类型才可用。 如果此Executable
对象表示一个实例方法或表示内部件类的构造 ,并且所述方法/构造或者具有没有接收器参数或与它的类型没有注释的接收器参数,则返回值是一个AnnotatedType
表示对象没有注释的元素 如果此Executable
对象表示静态方法或表示顶级,静态成员,本地或匿名类的构造函数,则返回值为null。- 结果
-
表示由该
Executable
或null
表示的方法或构造器的接收器类型的对象,如果该Executable
不能具有接收器参数
-
getAnnotatedParameterTypes
public AnnotatedType[] getAnnotatedParameterTypes()
返回一个AnnotatedType
对象的数组,表示使用类型来指定此可执行文件所表示的方法/构造函数的形式参数类型。 数组中对象的顺序对应于方法/构造函数声明中形式参数类型的顺序。 如果方法/构造函数声明没有参数,则返回长度为0的数组。- 结果
-
表示由该
Executable
表示的方法或构造函数的形式参数的类型的对象数组
-
getAnnotatedExceptionTypes
public AnnotatedType[] getAnnotatedExceptionTypes()
返回一个AnnotatedType
对象的数组,它们表示使用类型来指定由此可执行文件表示的方法/构造函数声明的异常。 数组中对象的顺序对应于方法/构造函数声明中异常类型的顺序。 如果方法/构造函数声明没有异常,则返回长度为0的数组。- 结果
-
表示由该
Executable
表示的方法或构造函数声明的异常的对象数组
-
-