Package Summary  Overview Summary

class:ClassDesc [NONE]

All Superinterfaces:
ConstantDesc, TypeDescriptor, TypeDescriptor.OfField<ClassDesc>

public sealed interface ClassDesc extends ConstantDesc, TypeDescriptor.OfField<ClassDesc>
A nominal descriptor for a Class constant.

For common system types, including all the primitive types, there are predefined ClassDesc constants in ConstantDescs. (The java.lang.constant APIs consider void to be a primitive type.) To create a ClassDesc for a class or interface type, use of(java.lang.String) or ofDescriptor(String); to create a ClassDesc for an array type, use ofDescriptor(String), or first obtain a ClassDesc for the component type and then call the arrayType() or arrayType(int) methods.

Since:
12
See Also:

method:of(java.lang.String) [CHANGED]

  • of

    static ClassDesc of (String name)
    Returns a ClassDesc for a class or interface type, given the name of the class or interface, such as "java.lang.String". (To create a descriptor for an array type, either use ofDescriptor(String) or arrayType(); to create a descriptor for a primitive type, use ofDescriptor(String) or use the predefined constants in ConstantDescs).
    Parameters:
    name - the fully qualified (dot-separated) binary class name
    Returns:
    a ClassDesc describing the desired class
    Throws:
    NullPointerException - if the argument is null
    IllegalArgumentException - if the name string is not in the correct format
    See Also:
  • of

    static ClassDesc of (String name)
    Returns a ClassDesc for a class or interface type, given the name of the class or interface, such as "java.lang.String". (To create a descriptor for an array type, either use ofDescriptor(String) or arrayType(); to create a descriptor for a primitive type, use ofDescriptor(String) or use the predefined constants in ConstantDescs).
    Parameters:
    name - the fully qualified (dot-separated) binary class name
    Returns:
    a ClassDesc describing the desired class
    Throws:
    NullPointerException - if the argument is null
    IllegalArgumentException - if the name string is not in the correct format
  • of

    static ClassDesc of (String name)
    Returns a ClassDesc for a class or interface type, given the name of the class or interface, such as "java.lang.String". (To create a descriptor for an array type, either use ofDescriptor(String) or arrayType(); to create a descriptor for a primitive type, use ofDescriptor(String) or use the predefined constants in ConstantDescs).
    Parameters:
    name - the fully qualified (dot-separated) binary class name
    Returns:
    a ClassDesc describing the desired class
    Throws:
    NullPointerException - if the argument is null
    IllegalArgumentException - if the name string is not in the correct format
    See Also:
  • method:ofInternalName(java.lang.String) [ADDED]

    ofInternalName

    static ClassDesc ofInternalName (String name)
    Returns a ClassDesc for a class or interface type, given the name of the class or interface in internal form, such as "java/lang/String".
    API Note:
    To create a descriptor for an array type, either use ofDescriptor(String) or arrayType(); to create a descriptor for a primitive type, use ofDescriptor(String) or use the predefined constants in ConstantDescs.
    Parameters:
    name - the fully qualified class name, in internal (slash-separated) form
    Returns:
    a ClassDesc describing the desired class
    Throws:
    NullPointerException - if the argument is null
    IllegalArgumentException - if the name string is not in the correct format
    See Java Virtual Machine Specification :
    4.2.1 Binary Class and Interface Names
    Since:
    20
    See Also:

    method:of(java.lang.String,java.lang.String) [NONE]

    of

    static ClassDesc of (String packageName, String className)
    Returns a ClassDesc for a class or interface type, given a package name and the unqualified (simple) name for the class or interface.
    Parameters:
    packageName - the package name (dot-separated); if the package name is the empty string, the class is considered to be in the unnamed package
    className - the unqualified (simple) class name
    Returns:
    a ClassDesc describing the desired class
    Throws:
    NullPointerException - if any argument is null
    IllegalArgumentException - if the package name or class name are not in the correct format

    method:ofDescriptor(java.lang.String) [CHANGED]

    ofDescriptor

    static ClassDesc ofDescriptor (String descriptor)
    Returns a ClassDesc given a descriptor string for a class, interface, array, or primitive type.
    API Note:
    A field type descriptor string for a non-array type is either a one-letter code corresponding to a primitive type ("J", "I", "C", "S", "B", "D", "F", "Z", "V" ), or the letter "L", followed by the fully qualified binary name of a class, followed by ";". A field type descriptor for an array type is the character "[" followed by the field descriptor for the component type. Examples of valid type descriptor strings include "Ljava/lang/String;", "I", "[I", "V", "[Ljava/lang/String;", etc. See JVMS 4.3.2 ("Field Descriptors") for more detail.
    Parameters:
    descriptor - a field descriptor string
    Returns:
    a ClassDesc describing the desired class
    Throws:
    NullPointerException - if the argument is null
    IllegalArgumentException - if the name string is not in the correct format
    See Java Virtual Machine Specification :
    4.3.2 Field Descriptors
    4.4.1 The CONSTANT_Class_info Structure
    See Also:

    ofDescriptor

    static ClassDesc ofDescriptor (String descriptor)
    Returns a ClassDesc given a descriptor string for a class, interface, array, or primitive type.
    API Note:
    A field type descriptor string for a non-array type is either a one-letter code corresponding to a primitive type ("J", "I", "C", "S", "B", "D", "F", "Z", "V" ), or the letter "L", followed by the fully qualified binary name of a class, followed by ";". A field type descriptor for an array type is the character "[" followed by the field descriptor for the component type. Examples of valid type descriptor strings include "Ljava/lang/String;", "I", "[I", "V", "[Ljava/lang/String;", etc. See JVMS 4.3.2 ("Field Descriptors") for more detail.
    Parameters:
    descriptor - a field descriptor string
    Returns:
    a ClassDesc describing the desired class
    Throws:
    NullPointerException - if the argument is null
    IllegalArgumentException - if the name string is not in the correct format
    See Java Virtual Machine Specification :
    4.3.2 Field Descriptors
    4.4.1 The CONSTANT_Class_info Structure

    ofDescriptor

    static ClassDesc ofDescriptor (String descriptor)
    Returns a ClassDesc given a descriptor string for a class, interface, array, or primitive type.
    API Note:
    A field type descriptor string for a non-array type is either a one-letter code corresponding to a primitive type ("J", "I", "C", "S", "B", "D", "F", "Z", "V" ), or the letter "L", followed by the fully qualified binary name of a class, followed by ";". A field type descriptor for an array type is the character "[" followed by the field descriptor for the component type. Examples of valid type descriptor strings include "Ljava/lang/String;", "I", "[I", "V", "[Ljava/lang/String;", etc. See JVMS 4.3.2 ("Field Descriptors") for more detail.
    Parameters:
    descriptor - a field descriptor string
    Returns:
    a ClassDesc describing the desired class
    Throws:
    NullPointerException - if the argument is null
    IllegalArgumentException - if the name string is not in the correct format
    See Java Virtual Machine Specification :
    4.3.2 Field Descriptors
    4.4.1 The CONSTANT_Class_info Structure
    See Also:

    method:arrayType() [NONE]

    arrayType

    default ClassDesc arrayType()
    Returns a ClassDesc for an array type whose component type is described by this ClassDesc.
    Specified by:
    arrayType in interface TypeDescriptor.OfField<ClassDesc>
    Returns:
    a ClassDesc describing the array type
    Throws:
    IllegalStateException - if the resulting ClassDesc would have an array rank of greater than 255
    See Java Virtual Machine Specification :
    4.4.1 The CONSTANT_Class_info Structure

    method:arrayType(int) [NONE]

    arrayType

    default ClassDesc arrayType (int rank)
    Returns a ClassDesc for an array type of the specified rank, whose component type is described by this ClassDesc.
    Parameters:
    rank - the rank of the array
    Returns:
    a ClassDesc describing the array type
    Throws:
    IllegalArgumentException - if the rank is less than or equal to zero or if the rank of the resulting array type is greater than 255
    See Java Virtual Machine Specification :
    4.4.1 The CONSTANT_Class_info Structure

    method:nested(java.lang.String) [NONE]

    nested

    default ClassDesc nested (String nestedName)
    Returns a ClassDesc for a nested class of the class or interface type described by this ClassDesc.
    API Note:
    Example: If descriptor d describes the class java.util.Map, a descriptor for the class java.util.Map.Entry could be obtained by d.nested("Entry").
    Parameters:
    nestedName - the unqualified name of the nested class
    Returns:
    a ClassDesc describing the nested class
    Throws:
    NullPointerException - if the argument is null
    IllegalStateException - if this ClassDesc does not describe a class or interface type
    IllegalArgumentException - if the nested class name is invalid

    method:nested(java.lang.String,java.lang.String...) [NONE]

    nested

    default ClassDesc nested (String firstNestedName, String... moreNestedNames)
    Returns a ClassDesc for a nested class of the class or interface type described by this ClassDesc.
    Parameters:
    firstNestedName - the unqualified name of the first level of nested class
    moreNestedNames - the unqualified name(s) of the remaining levels of nested class
    Returns:
    a ClassDesc describing the nested class
    Throws:
    NullPointerException - if any argument or its contents is null
    IllegalStateException - if this ClassDesc does not describe a class or interface type
    IllegalArgumentException - if the nested class name is invalid

    method:isArray() [NONE]

    isArray

    default boolean isArray()
    Returns whether this ClassDesc describes an array type.
    Specified by:
    isArray in interface TypeDescriptor.OfField<ClassDesc>
    Returns:
    whether this ClassDesc describes an array type

    method:isPrimitive() [NONE]

    isPrimitive

    default boolean isPrimitive()
    Returns whether this ClassDesc describes a primitive type.
    Specified by:
    isPrimitive in interface TypeDescriptor.OfField<ClassDesc>
    Returns:
    whether this ClassDesc describes a primitive type

    method:isClassOrInterface() [NONE]

    isClassOrInterface

    default boolean isClassOrInterface()
    Returns whether this ClassDesc describes a class or interface type.
    Returns:
    whether this ClassDesc describes a class or interface type

    method:componentType() [NONE]

    componentType

    default ClassDesc componentType()
    Returns the component type of this ClassDesc, if it describes an array type, or null otherwise.
    Specified by:
    componentType in interface TypeDescriptor.OfField<ClassDesc>
    Returns:
    a ClassDesc describing the component type, or null if this descriptor does not describe an array type

    method:packageName() [NONE]

    packageName

    default String packageName()
    Returns the package name of this ClassDesc, if it describes a class or interface type.
    Returns:
    the package name, or the empty string if the class is in the default package, or this ClassDesc does not describe a class or interface type

    method:displayName() [NONE]

    displayName

    default String displayName()
    Returns a human-readable name for the type described by this descriptor.
    Implementation Requirements:

    The default implementation returns the simple name (e.g., int) for primitive types, the unqualified class name for class or interface types, or the display name of the component type suffixed with the appropriate number of [] pairs for array types.

    Returns:
    the human-readable name

    method:descriptorString() [NONE]

    descriptorString

    String descriptorString()
    Returns a field type descriptor string for this type
    Specified by:
    descriptorString in interface TypeDescriptor
    Returns:
    the descriptor string
    See Java Virtual Machine Specification :
    4.3.2 Field Descriptors

    method:equals(java.lang.Object) [NONE]

    equals

    boolean equals (Object o)
    Compare the specified object with this descriptor for equality. Returns true if and only if the specified object is also a ClassDesc and both describe the same type.
    Overrides:
    equals in class Object
    Parameters:
    o - the other object
    Returns:
    whether this descriptor is equal to the other object
    See Also:

    © 2023 Oracle Corporation and/or its affiliates