模块 java.base

类 Executable

所有已实现的接口:
AnnotatedElement , GenericDeclaration , Member
已知子类:
Constructor , Method

public abstract sealed class Executable extends AccessibleObject implements Member , GenericDeclaration permits 构造方法 <T>, Method
Method Constructor 的通用功能的共享超类。
自从:
1.8
  • 方法详情

    • getDeclaringClass

      public abstract Class <?> getDeclaringClass()
      返回表示声明此对象表示的可执行文件的类或接口的 Class 对象。
      指定者:
      getDeclaringClass 在接口 Member
      返回:
      表示底层成员的声明类的对象
    • getName

      public abstract String  getName()
      返回此对象表示的可执行文件的名称。
      指定者:
      getName 在接口 Member
      返回:
      基础成员的简单名称
    • getModifiers

      public abstract int getModifiers()
      返回此对象表示的可执行文件的 Java 语言 modifiers
      指定者:
      getModifiers 在接口 Member
      返回:
      此对象表示的可执行文件的 Java 语言 modifiers
      参见:
    • accessFlags

      public Set <AccessFlag > accessFlags()
      返回此对象表示的可执行文件的不可修改的 访问标志 集,可能为空。
      指定者:
      accessFlags 在接口 Member
      返回:
      此对象表示的可执行文件的不可修改的 访问标志 集,可能为空
      Java 虚拟机规范:
      4.6 方法
      自从:
      20
      参见:
    • getTypeParameters

      public abstract TypeVariable <?>[] getTypeParameters()
      返回一个 TypeVariable 对象数组,这些对象表示由此 GenericDeclaration 对象表示的泛型声明所声明的类型变量,按声明顺序排列。如果基础泛型声明未声明类型变量,则返回长度为 0 的数组。
      指定者:
      getTypeParameters 在接口 GenericDeclaration
      返回:
      一个 TypeVariable 对象数组,表示此泛型声明所声明的类型变量
      抛出:
      GenericSignatureFormatError - 如果此通用声明的通用签名不符合中指定的格式Java 虚拟机规范
    • getParameterTypes

      public abstract Class <?>[] getParameterTypes()
      返回一个 Class 对象数组,这些对象按声明顺序表示此对象表示的可执行文件的形式参数类型。如果底层可执行文件不带参数,则返回长度为 0 的数组。请注意,某些内部类的构造函数除了显式声明的参数外,还可能具有隐式声明的参数。
      返回:
      此对象表示的可执行文件的参数类型
    • getParameterCount

      public abstract int getParameterCount()
      返回此对象表示的可执行文件的形式参数(无论是显式声明还是隐式声明或两者都不是)的数量。
      返回:
      此对象表示的可执行文件的形参数量
    • getGenericParameterTypes

      public Type [] getGenericParameterTypes()
      返回一个 Type 对象数组,这些对象按声明顺序表示此对象表示的可执行文件的形式参数类型。如果底层可执行文件不带参数,则返回长度为 0 的数组。请注意,某些内部类的构造函数除了显式声明的参数外,还可能具有隐式声明的参数。另请注意,作为 建模神器 ,返回参数的数量可能会有所不同,具体取决于是否存在通用信息。如果存在通用信息,则仅返回源中明确存在的参数;如果不存在通用信息,则也可以返回隐式和合成参数。

      如果形式参数类型是参数化类型,则为其返回的 Type 对象必须准确反映源代码中使用的实际类型参数。

      如果形式参数类型是类型变量或参数化类型,则创建它。否则,它被解决了。

      返回:
      一个 Type 数组,表示底层可执行文件的形式参数类型,按声明顺序排列
      抛出:
      GenericSignatureFormatError - 如果泛型方法签名不符合指定的格式Java 虚拟机规范
      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 的数组。

      如果异常类型是类型变量或参数化类型,则创建它。否则,它被解决了。

      返回:
      表示底层可执行文件抛出的异常类型的 Types 数组
      抛出:
      GenericSignatureFormatError - 如果泛型方法签名不符合指定的格式Java 虚拟机规范
      TypeNotPresentException - 如果底层可执行文件的 throws 子句引用不存在的类型声明
      MalformedParameterizedTypeException - 如果底层可执行文件的 throws 子句引用了由于任何原因无法实例化的参数化类型
    • toGenericString

      public abstract String  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

      public abstract Annotation [][] getParameterAnnotations()
      返回 Annotation 数组的数组,这些数组表示形式参数上的注释,按声明顺序,由该对象表示的 Executable 。合成参数和强制参数(参见下面的解释),例如内部类构造函数的外部“this”参数将在返回的数组中表示。如果可执行文件没有参数(意味着没有正式的、没有综合的、没有强制的参数),将返回一个零长度数组。如果 Executable 有一个或多个参数,则为每个没有注释的参数返回一个长度为零的嵌套数组。返回数组中包含的注释对象是可序列化的。该方法的调用者可以自由修改返回的数组;它不会影响返回给其他调用者的数组。编译器可能会在方法的参数列表中添加在源代码中隐式声明的额外参数(“强制”),以及在源代码中既没有隐式声明也没有显式声明的参数(“合成”)。有关详细信息,请参阅 Parameter

      请注意,此方法返回的任何注释都是声明注解。

      返回:
      一个数组数组,表示此对象表示的可执行文件的形式参数和隐式参数的注释,按声明顺序排列
      参见:
    • getAnnotation

      public <T extends Annotation > T getAnnotation(Class <T> annotationClass)
      如果此类注解为 present ,则返回此元素针对指定类型的注解,否则为 null。

      请注意,此方法返回的任何注解都是声明注解。

      指定者:
      getAnnotation 在接口 AnnotatedElement
      重写:
      getAnnotation 在类 AccessibleObject
      类型参数:
      T - 要查询并返回的注释类型(如果存在)
      参数:
      annotationClass——注解类型对应的Class对象
      返回:
      如果此元素上存在此元素的指定注解类型的注解,则为 null
      抛出:
      NullPointerException - 如果给定的注释类为 null
    • getAnnotationsByType

      public <T extends Annotation > T[] getAnnotationsByType(Class <T> annotationClass)
      返回带有此元素的 associated 注释。如果这个元素没有注解associated,返回值是一个长度为0的数组。这个方法和AnnotatedElement.getAnnotation(Class) 的区别是这个方法检测它的参数是否是一个repeatable annotation type(JLS 9.6),如果是,则尝试寻找通过“查看”容器注解来查看该类型的一个或多个注释。该方法的调用者可以自由修改返回的数组;它不会影响返回给其他调用者的数组。

      请注意,此方法返回的任何注释都是声明注解。

      指定者:
      getAnnotationsByType 在接口 AnnotatedElement
      重写:
      getAnnotationsByType 在类 AccessibleObject
      类型参数:
      T - 要查询并返回的注释类型(如果存在)
      参数:
      annotationClass——注解类型对应的Class对象
      返回:
      如果与此元素相关联,则为指定注解类型的所有此元素的注释,否则为长度为零的数组
      抛出:
      NullPointerException - 如果给定的注释类为 null
    • getDeclaredAnnotations

      public Annotation [] getDeclaredAnnotations()
      返回此元素上的 directly present 注释。此方法忽略继承的注释。如果该元素上没有注解directly present,则返回值为长度为0的数组。该方法的调用者可以自由修改返回的数组;它不会影响返回给其他调用者的数组。

      请注意,此方法返回的任何注释都是声明注解。

      指定者:
      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 对象 represents an instance method or represents a constructor of an inner member class 和方法/构造函数 either 没有接收者参数或接收者参数在其类型上没有注释,则返回值是一个 AnnotatedType 对象,代表一个没有注释的元素。如果此 Executable 对象表示静态方法或表示顶级、静态成员、本地或匿名类的构造函数,则返回值为 null。
      返回:
      表示由 this Executablenull 表示的方法或构造函数的接收者类型的对象,如果 this Executable 不能有接收者参数
      Java 语言规范:
      8.4 方法声明
      8.4.1 形式参数
      8.8 构造函数声明
    • getAnnotatedParameterTypes

      public AnnotatedType [] getAnnotatedParameterTypes()
      返回一个 AnnotatedType 对象数组,这些对象表示使用类型来指定此可执行文件表示的方法/构造函数的正式参数类型。数组中对象的顺序对应于方法/构造函数声明中形参类型的顺序。如果方法/构造函数未声明参数,则返回长度为 0 的数组。请注意,某些内部类的构造函数除了显式声明的参数外,还可能具有隐式声明的参数。
      返回:
      表示此 Executable 表示的方法或构造函数的形参类型的对象数组
    • getAnnotatedExceptionTypes

      public AnnotatedType [] getAnnotatedExceptionTypes()
      返回一个 AnnotatedType 对象数组,这些对象表示使用类型来指定此可执行文件表示的方法/构造函数的声明异常。数组中对象的顺序对应于方法/构造函数声明中异常类型的顺序。如果方法/构造函数声明没有异常,则返回长度为 0 的数组。
      返回:
      表示此 Executable 表示的方法或构造函数的已声明异常的对象数组