# Interface ClassSignature

public sealed interface ClassSignature
Models the generic signature of a class or interface, as defined by JVMS 4.7.9.1.

See Java Language Specification:
  8.1 Class Declarations
  9.1 Interface Declarations
See Java Virtual Machine Specification:
  4.7.9.1 Signatures
Since:
  24
See Also:
  - `Class`
  - `SignatureAttribute`

## Method Summary

Modifier and Type
Method
Description
`static ClassSignature`
`of(Signature.ClassTypeSig superclassSignature, Signature.ClassTypeSig... superinterfaceSignatures)`
Returns a class signature with no type parameter declaration.
`static ClassSignature`
`of(List<Signature.TypeParam> typeParameters, Signature.ClassTypeSig superclassSignature, Signature.ClassTypeSig... superinterfaceSignatures)`
Returns a class signature.
`static ClassSignature`
`parseFrom(String classSignature)`
Parses a raw class signature string into a Signature.
`String`
`signatureString()`
Returns the raw signature string.
`Signature.ClassTypeSig`
`superclassSignature()`
Returns the instantiation of the superclass in this signature.
`List<Signature.ClassTypeSig>`
`superinterfaceSignatures()`
Returns the instantiation of the interfaces in this signature, may be empty.
`List<Signature.TypeParam>`
`typeParameters()`
Returns the type parameters of this class or interface, may be empty.

## Method Details

### typeParameters

List<Signature.TypeParam> typeParameters()
Returns the type parameters of this class or interface, may be empty.

Returns:
  the type parameters of this class or interface, may be empty
See Java Language Specification:
  8.1.2 Generic Classes and Type Parameters
  9.1.2 Generic Interfaces and Type Parameters
See Also:
  - `Class.getTypeParameters()`

### superclassSignature

Signature.ClassTypeSig superclassSignature()
Returns the instantiation of the superclass in this signature. Interfaces return a signature representing the `Object` class.

Returns:
  the instantiation of the superclass in this signature
See Java Language Specification:
  8.1.4 Superclasses and Subclasses
See Also:
  - `Class.getGenericSuperclass()`

### superinterfaceSignatures

List<Signature.ClassTypeSig> superinterfaceSignatures()
Returns the instantiation of the interfaces in this signature, may be empty.

Returns:
  the instantiation of the interfaces in this signature, may be empty
See Java Language Specification:
  8.1.5 Superinterfaces
  9.1.3 Superinterfaces and Subinterfaces
See Also:
  - `Class.getGenericInterfaces()`

### signatureString

String signatureString()
Returns the raw signature string.

Returns:
  the raw signature string

### of

static ClassSignature of(Signature.ClassTypeSig superclassSignature, Signature.ClassTypeSig... superinterfaceSignatures)
Returns a class signature with no type parameter declaration.

Parameters:
  `superclassSignature` - the superclass
  `superinterfaceSignatures` - the interfaces
Returns:
  a class signature with no type parameter declaration

### of

static ClassSignature of(List<Signature.TypeParam> typeParameters, Signature.ClassTypeSig superclassSignature, Signature.ClassTypeSig... superinterfaceSignatures)
Returns a class signature.

Parameters:
  `typeParameters` - the type parameters, may be empty
  `superclassSignature` - the superclass
  `superinterfaceSignatures` - the interfaces
Returns:
  a class signature

### parseFrom

static ClassSignature parseFrom(String classSignature)
Parses a raw class signature string into a Signature.

Parameters:
  `classSignature` - the raw class signature string
Returns:
  class signature
Throws:
  `IllegalArgumentException` - if the string is not a valid class signature string