GenericDeclaration (Java SE 26 & JDK 26)
Description: declaration: module: java.base, package: java.lang.reflect, interface: GenericDeclaration
Keywords: java.lang.reflect.GenericDeclaration interface

# Interface GenericDeclaration

All Superinterfaces:
  `AnnotatedElement`

All Known Implementing Classes:
  `Class, Constructor, Executable, Method`

public interface GenericDeclaration extends AnnotatedElement
A common interface for all entities that declare type variables.

Since:
  1.5

- ## Method Summary

  Modifier and Type
  Method
  Description
  `TypeVariable<?>[]`
  `getTypeParameters()`
  Returns an array of `TypeVariable` objects that represent the type variables declared by the generic declaration represented by this `GenericDeclaration` object, in declaration order.

  ### Methods declared in interface AnnotatedElement

  `getAnnotation, getAnnotations, getAnnotationsByType, getDeclaredAnnotation, getDeclaredAnnotations, getDeclaredAnnotationsByType, isAnnotationPresent`
  Modifier and Type
  Method
  Description
  `<T extends Annotation>
  T`
  `getAnnotation(Class<T> annotationClass)`
  Returns this element's annotation for the specified type if such an annotation is present, else null.
  `Annotation[]`
  `getAnnotations()`
  Returns annotations that are present on this element.
  `default <T extends Annotation>
  T[]`
  `getAnnotationsByType(Class<T> annotationClass)`
  Returns annotations that are associated with this element.
  `default <T extends Annotation>
  T`
  `getDeclaredAnnotation(Class<T> annotationClass)`
  Returns this element's annotation for the specified type if such an annotation is directly present, else null.
  `Annotation[]`
  `getDeclaredAnnotations()`
  Returns annotations that are directly present on this element.
  `default <T extends Annotation>
  T[]`
  `getDeclaredAnnotationsByType(Class<T> annotationClass)`
  Returns this element's annotation(s) for the specified type if such annotations are either directly present or indirectly present.
  `default boolean`
  `isAnnotationPresent(Class<? extends Annotation> annotationClass)`
  Returns true if an annotation for the specified type is present on this element, else false.

- ## Method Details

  - ### getTypeParameters

    TypeVariable<?>[] getTypeParameters()
    Returns an array of `TypeVariable` objects that represent the type variables declared by the generic declaration represented by this `GenericDeclaration` object, in declaration order. Returns an array of length 0 if the underlying generic declaration declares no type variables.
    Returns:
      an array of `TypeVariable` objects that represent the type variables declared by this generic declaration
    Throws:
      `GenericSignatureFormatError` - if the generic signature of this generic declaration does not conform to the format specified in The Java Virtual Machine Specification