Signature.TypeParam (Java SE 26 & JDK 26)
Description: declaration: module: java.base, package: java.lang.classfile, interface: Signature, interface: TypeParam
Keywords: java.lang.classfile.Signature.TypeParam interface

# Interface Signature.TypeParam

Enclosing interface:
  `Signature`

public static sealed interface Signature.TypeParam
Models a signature for a type parameter of a generic class, interface, method, or constructor, which introduces a type variable.

See Java Language Specification:
  4.4 Type Variables
See Java Virtual Machine Specification:
  4.7.9.1 Signatures
Since:
  24
See Also:
  - `GenericDeclaration.getTypeParameters()`
  - `TypeVariable`
  - `Signature.TypeVarSig`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Optional<Signature.RefTypeSig>`
  `classBound()`
  Returns the class bound of the type parameter.
  `String`
  `identifier()`
  Returns the name of the type parameter.
  `List<Signature.RefTypeSig>`
  `interfaceBounds()`
  Returns the interface bounds of the type parameter.
  `static Signature.TypeParam`
  `of(String identifier, Signature.RefTypeSig classBound, Signature.RefTypeSig... interfaceBounds)`
  Returns a signature for a type parameter.
  `static Signature.TypeParam`
  `of(String identifier, Optional<Signature.RefTypeSig> classBound, Signature.RefTypeSig... interfaceBounds)`
  Returns a signature for a type parameter.

- ## Method Details

  - ### identifier

    String identifier()
    Returns the name of the type parameter.
    Returns:
      the name of the type parameter

  - ### classBound

    Optional<Signature.RefTypeSig> classBound()
    Returns the class bound of the type parameter. This may be empty if this type parameter only has interface bounds.
    Returns:
      the class bound of the type parameter

  - ### interfaceBounds

    List<Signature.RefTypeSig> interfaceBounds()
    Returns the interface bounds of the type parameter. This may be empty.
    Returns:
      the interface bounds of the type parameter

  - ### of

    static Signature.TypeParam of(String identifier, Signature.RefTypeSig classBound, Signature.RefTypeSig... interfaceBounds)
    Returns a signature for a type parameter.
    Parameters:
      `identifier` - the name of the type parameter
      `classBound` - the class bound of the type parameter, may be `null`
      `interfaceBounds` - the interface bounds of the type parameter
    Returns:
      a signature for a type parameter
    Throws:
      `IllegalArgumentException` - if the name cannot be denoted

  - ### of

    static Signature.TypeParam of(String identifier, Optional<Signature.RefTypeSig> classBound, Signature.RefTypeSig... interfaceBounds)
    Returns a signature for a type parameter.
    Parameters:
      `identifier` - the name of the type parameter
      `classBound` - the optional class bound of the type parameter
      `interfaceBounds` - the interface bounds of the type parameter
    Returns:
      a signature for a type parameter
    Throws:
      `IllegalArgumentException` - if the name cannot be denoted