# 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