# 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.

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