# Interface Signature.ClassTypeSig

All Superinterfaces:
  `Signature, Signature.RefTypeSig, Signature.ThrowableSig`

Enclosing interface:
  `Signature`

public static sealed interface Signature.ClassTypeSig extends Signature.RefTypeSig, Signature.ThrowableSig
Models the signature of a possibly-parameterized class or interface type.

See Java Virtual Machine Specification:
  4.7.9.1 Signatures
Since:
  24
See Also:
  - `Type`
  - `ParameterizedType`

- ## Nested Class Summary

  ### Nested classes/interfaces declared in interface Signature

  `Signature.ArrayTypeSig, Signature.BaseTypeSig, Signature.ClassTypeSig, Signature.RefTypeSig, Signature.ThrowableSig, Signature.TypeArg, Signature.TypeParam, Signature.TypeVarSig`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `default ClassDesc`
  `classDesc()`
  Returns this class or interface, as a symbolic descriptor.
  `String`
  `className()`
  Returns the class or interface name; includes the slash-separated package name if there is no outer type.
  `static Signature.ClassTypeSig`
  `of(Signature.ClassTypeSig outerType, ClassDesc className, Signature.TypeArg... typeArgs)`
  Returns a class or interface signature.
  `static Signature.ClassTypeSig`
  `of(Signature.ClassTypeSig outerType, String className, Signature.TypeArg... typeArgs)`
  Returns a class type signature.
  `static Signature.ClassTypeSig`
  `of(ClassDesc className, Signature.TypeArg... typeArgs)`
  Returns a class or interface signature without an outer type.
  `static Signature.ClassTypeSig`
  `of(String className, Signature.TypeArg... typeArgs)`
  Returns a class or interface signature without an outer type.
  `Optional<Signature.ClassTypeSig>`
  `outerType()`
  Returns the signature of the class that this class is a member of, only if this is a member class.
  `List<Signature.TypeArg>`
  `typeArgs()`
  Returns the type arguments of this class or interface.

  ### Methods declared in interface Signature

  `signatureString`

- ## Method Details

  - ### outerType

    Optional<Signature.ClassTypeSig> outerType()
    Returns the signature of the class that this class is a member of, only if this is a member class. Note that the outer class may be absent if it is not a parameterized type.
    Returns:
      the signature of the class that this class is a member of, only if this is a member class
    See Java Language Specification:
      4.5 Parameterized Types

  - ### className

    String className()
    Returns the class or interface name; includes the slash-separated package name if there is no outer type.
    Returns:
      the class or interface name; includes the slash-separated package name if there is no outer type

  - ### classDesc

    default ClassDesc classDesc()
    Returns this class or interface, as a symbolic descriptor.
    Returns:
      this class or interface, as a symbolic descriptor

  - ### typeArgs

    List<Signature.TypeArg> typeArgs()
    Returns the type arguments of this class or interface. Note that the outer type may have more type arguments.
    Returns:
      the type arguments of this class or interface
    See Java Language Specification:
      4.5 Parameterized Types

  - ### of

    static Signature.ClassTypeSig of(ClassDesc className, Signature.TypeArg... typeArgs)
    Returns a class or interface signature without an outer type.
    Parameters:
      `className` - the name of the class or interface
      `typeArgs` - the type arguments
    Returns:
      a class or interface signature without an outer type
    Throws:
      `IllegalArgumentException` - if `className` does not represent a class or interface

  - ### of

    static Signature.ClassTypeSig of(Signature.ClassTypeSig outerType, ClassDesc className, Signature.TypeArg... typeArgs)
    Returns a class or interface signature.
    Parameters:
      `outerType` - signature of the outer type, may be `null`
      `className` - the name of this class or interface
      `typeArgs` - the type arguments
    Returns:
      a class or interface signature
    Throws:
      `IllegalArgumentException` - if `className` does not represent a class or interface

  - ### of

    static Signature.ClassTypeSig of(String className, Signature.TypeArg... typeArgs)
    Returns a class or interface signature without an outer type.
    Parameters:
      `className` - the name of the class or interface
      `typeArgs` - the type arguments
    Returns:
      a class or interface signature without an outer type

  - ### of

    static Signature.ClassTypeSig of(Signature.ClassTypeSig outerType, String className, Signature.TypeArg... typeArgs)
    Returns a class type signature.
    Parameters:
      `outerType` - signature of the outer type, may be `null`
      `className` - the name of this class or interface
      `typeArgs` - the type arguments
    Returns:
      a class type signature