# Interface Signature

All Known Subinterfaces:
  `Signature.ArrayTypeSig, Signature.BaseTypeSig, Signature.ClassTypeSig, Signature.RefTypeSig, Signature.ThrowableSig, Signature.TypeVarSig`

public sealed interface Signature permits Signature.BaseTypeSig, Signature.RefTypeSig, Signature.ThrowableSig
Models generic Java type signatures, as defined in JVMS §4.7.9.1.

Names in signatures are identifiers, which must not be empty and must not contain any of the ASCII characters `. ; [ / < > :`. Top-level class and interface names are denoted by slash-separated identifiers.

See Java Language Specification:
  4.1 The Kinds of Types and Values
See Java Virtual Machine Specification:
  4.7.9.1 Signatures
Sealed Class Hierarchy Graph:
Since:
  24
See Also:
  - `Type`
  - `SignatureAttribute`

## Nested Class Summary

Nested Classes
Modifier and Type
Interface
Description
`static interface`
`Signature.ArrayTypeSig`
Models the signature of an array type.
`static interface`
`Signature.BaseTypeSig`
Models the signature of a primitive type (JLS §4.2) or void.
`static interface`
`Signature.ClassTypeSig`
Models the signature of a possibly-parameterized class or interface type.
`static interface`
`Signature.RefTypeSig`
Models the signature of a reference type, which may be a class, interface, type variable, or array type.
`static interface`
`Signature.ThrowableSig`
Marker interface for a signature for a throwable type.
`static interface`
`Signature.TypeArg`
Models a type argument, an argument to a type parameter.
`static interface`
`Signature.TypeParam`
Models a signature for a type parameter of a generic class, interface, method, or constructor, which introduces a type variable.
`static interface`
`Signature.TypeVarSig`
Models the signature of a type variable.

## Method Summary

Modifier and Type
Method
Description
`static Signature`
`of(ClassDesc classDesc)`
Returns a Java type signature from a field descriptor.
`static Signature`
`parseFrom(String javaTypeSignature)`
Parses a Java type signature from a raw string.
`String`
`signatureString()`
Returns the raw signature string.

## Method Details

### signatureString

String signatureString()
Returns the raw signature string.

Returns:
  the raw signature string

### parseFrom

static Signature parseFrom(String javaTypeSignature)
Parses a Java type signature from a raw string.

Parameters:
  `javaTypeSignature` - raw Java type signature string
Returns:
  a Java type signature
Throws:
  `IllegalArgumentException` - if the string is not a valid Java type signature string

### of

static Signature of(ClassDesc classDesc)
Returns a Java type signature from a field descriptor. The returned signature represents a reifiable type (JLS §4.7).

Parameters:
  `classDesc` - the symbolic description of the Java type
Returns:
  a Java type signature from a field descriptor
Throws:
  `IllegalArgumentException` - if the field descriptor cannot be denoted