Module java.base

Class Parameter

java.lang.Object
java.lang.reflect.Parameter
所有已实现的接口:
AnnotatedElement

public final class Parameter extends Object implements AnnotatedElement
方法参数的信息。 Parameter 提供有关方法参数的信息,包括其名称和修饰符。 它还提供了一种获取参数属性的替代方法。
自1.8版本起:
1.8
  • Method Details

    • equals

      public boolean equals(Object obj)
      基于可执行文件和索引进行比较。
      覆盖:
      equals 在类 Object
      参数:
      obj - 要比较的对象。
      返回:
      是否等于参数的值。
      参见:
    • hashCode

      public int hashCode()
      基于可执行文件的哈希码和索引返回哈希码。
      覆盖:
      hashCode 在类 Object
      返回:
      基于可执行文件的哈希码的哈希码。
      参见:
    • isNamePresent

      public boolean isNamePresent()
      如果参数根据类文件具有名称,则返回true;否则返回false。 参数是否具有名称取决于声明参数的方法的MethodParameters属性。
      返回:
      仅当参数根据类文件具有名称时返回true。
    • toString

      public String toString()
      返回描述此参数的字符串。 格式是参数的修饰符(如果有的话,按照Java语言规范推荐的规范顺序),后跟参数的完全限定类型(如果参数是可变参数,则不包括最后的[]),后跟"..."(如果参数是可变参数),后跟一个空格,后跟参数的名称。
      覆盖:
      toString 在类 Object
      返回:
      参数及相关信息的字符串表示。
    • getDeclaringExecutable

      public Executable getDeclaringExecutable()
      返回声明此参数的Executable
      返回:
      声明此参数的Executable
    • getModifiers

      public int getModifiers()
      返回由此对象表示的参数的Java语言修饰符
      返回:
      由此对象表示的参数的Java语言修饰符
      参见 Java语言规范:
      8.4.1 形式参数
      参见:
    • accessFlags

      public Set<AccessFlag> accessFlags()
      返回由此对象表示的参数的不可修改的访问标志集,可能为空。
      返回:
      由此对象表示的参数的不可修改的访问标志集,可能为空
      参见 Java虚拟机规范:
      4.7.24 MethodParameters属性
      自20版本起:
      20
      参见:
    • getName

      public String getName()
      返回参数的名称。 如果参数的名称存在,则此方法返回类文件提供的名称。 否则,此方法将合成一个名称,形式为argN,其中N是声明参数的方法描述符中的参数索引。
      返回:
      参数的名称,如果类文件未提供名称,则合成的名称。
    • getParameterizedType

      public Type getParameterizedType()
      返回一个Type对象,该对象标识由此Parameter对象表示的参数的参数化类型。
      返回:
      一个标识由此对象表示的参数的参数化类型的Type对象
    • getType

      public Class<?> getType()
      返回一个Class对象,该对象标识由此Parameter对象表示的参数的声明类型。
      返回:
      一个标识由此对象表示的参数的声明类型的Class对象
    • getAnnotatedType

      public AnnotatedType getAnnotatedType()
      返回一个AnnotatedType对象,该对象表示用于指定由此Parameter表示的形式参数的类型的类型的使用。
      返回:
      一个表示用于指定由此Parameter表示的形式参数的类型的类型的AnnotatedType对象
    • isImplicit

      public boolean isImplicit()
      如果此参数在源代码中隐式声明,则返回true;否则返回false
      返回:
      仅当此参数按照Java语言规范定义隐式声明时返回true。
    • isSynthetic

      public boolean isSynthetic()
      如果此参数既不是在源代码中隐式声明也不是显式声明,则返回true;否则返回false
      返回:
      仅当此参数按照Java语言规范定义为合成结构时返回true。
      参见 Java语言规范:
      13.1 二进制的形式
      参见:
    • isVarArgs

      public boolean isVarArgs()
      返回true如果此参数表示可变参数列表;否则返回false
      返回:
      true仅当此参数表示可变参数列表时返回。
    • getAnnotation

      public <T extends Annotation> T getAnnotation(Class<T> annotationClass)
      返回如果此元素的指定类型的注释是存在,则返回此元素的注释,否则返回null。

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

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

      public <T extends Annotation> T[] getAnnotationsByType(Class<T> annotationClass)
      返回与此元素关联的注解。如果没有与此元素关联的注解,则返回值是长度为0的数组。此方法与AnnotatedElement.getAnnotation(Class)之间的区别在于,此方法会检测其参数是否为可重复注解类型(JLS 9.6),如果是,则尝试通过“查找”容器注解来找到一个或多个该类型的注解。调用此方法的对象可以修改返回的数组;这不会影响返回给其他调用者的数组。

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

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

      public Annotation[] getDeclaredAnnotations()
      返回直接存在于此元素上的注解。此方法会忽略继承的注解。如果此元素上没有直接存在的注解,则返回值为长度为0的数组。调用此方法的对象可以修改返回的数组;这不会影响返回给其他调用者的数组。

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

      指定者:
      getDeclaredAnnotations 在接口 AnnotatedElement
      返回:
      直接存在于此元素上的注解
    • getDeclaredAnnotation

      public <T extends Annotation> T getDeclaredAnnotation(Class<T> annotationClass)
      如果此元素直接存在指定类型的注解,则返回该注解,否则返回null。此方法会忽略继承的注解。(如果此元素上没有直接存在的注解,则返回null。)

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

      指定者:
      getDeclaredAnnotation 在接口 AnnotatedElement
      类型参数:
      T - 要查询并在直接存在时返回的注解类型
      参数:
      annotationClass - 对应于注解类型的Class对象
      返回:
      如果直接存在于此元素上,则返回指定注解类型的此元素的注解,否则返回null
      抛出:
      NullPointerException - 如果给定的注解类为null
    • getDeclaredAnnotationsByType

      public <T extends Annotation> T[] getDeclaredAnnotationsByType(Class<T> annotationClass)
      如果此元素上存在指定类型的注解(或者直接存在间接存在),则返回该元素的注解。此方法会忽略继承的注解。如果此元素上没有直接存在间接存在的指定注解,则返回值为长度为0的数组。此方法与AnnotatedElement.getDeclaredAnnotation(Class)之间的区别在于,此方法会检测其参数是否为可重复注解类型(JLS 9.6),如果是,则尝试通过“查找”容器注解(如果存在)来找到一个或多个该类型的注解。调用此方法的对象可以修改返回的数组;这不会影响返回给其他调用者的数组。

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

      指定者:
      getDeclaredAnnotationsByType 在接口 AnnotatedElement
      类型参数:
      T - 要查询并在直接或间接存在时返回的注解类型
      参数:
      annotationClass - 对应于注解类型的Class对象
      返回:
      如果直接或间接存在于此元素上,则返回指定注解类型的此元素的所有注解,否则返回长度为零的数组
      抛出:
      NullPointerException - 如果给定的注解类为null
    • getAnnotations

      public Annotation[] getAnnotations()
      返回存在于此元素上的注解。如果此元素上没有存在的注解,则返回值为长度为0的数组。调用此方法的对象可以修改返回的数组;这不会影响返回给其他调用者的数组。

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

      指定者:
      getAnnotations 在接口 AnnotatedElement
      返回:
      存在于此元素上的注解