Spec-Zone.ru › OpenJDK 17

Интерфейс ClassDesc

Все суперинтерфейсы:
ConstantDesc, TypeDescriptor, TypeDescriptor.OfField<ClassDesc>
public sealed interface ClassDesc extends ConstantDesc, TypeDescriptor.OfField<ClassDesc>
Описание типа номинативного описателя для константы типа Class.

Для общих системных типов, включая все примитивные типы, в ConstantDescs определены предопределённые константы ClassDesc. (API java.lang.constant рассматривают void как примитивный тип.) Для создания ClassDesc для типа класса или интерфейса, используйте of(java.lang.String) или ofDescriptor(String); для создания ClassDesc для массива, используйте ofDescriptor(String), или сначала получите ClassDesc для компонентного типа, а затем вызовите методы arrayType() или arrayType(int).

С:
12
См. также:
  • ConstantDescs

Краткое описание вложенных классов

Вложенные классы/интерфейсы, объявленные в интерфейсе java.lang.invoke.TypeDescriptor

TypeDescriptor.OfField<F extends TypeDescriptor.OfField<F>>, TypeDescriptor.OfMethod<F extends TypeDescriptor.OfField<F>,M extends TypeDescriptor.OfMethod<F,M>>

Краткое описание методов

Модификатор и тип Метод Описание
default ClassDesc arrayType()
Возвращает ClassDesc для типа массива, компонентный тип которого описывается этим ClassDesc.
default ClassDesc arrayType(int rank)
Возвращает ClassDesc для типа массива указанного ранга, компонентный тип которого описывается этим ClassDesc.
default ClassDesc componentType()
Возвращает компонентный тип этого ClassDesc, если он описывает массив, или null в противном случае.
String descriptorString()
Возвращает строку описателя типа поля для этого типа
default String displayName()
Возвращает удобочитаемое имя типа, описанного этим описателем.
boolean equals(Object o)
Сравнивает указанный объект с этим описателем на равенство.
default boolean isArray()
Возвращает, описывает ли этот ClassDesc тип массива.
default boolean isClassOrInterface()
Возвращает, описывает ли этот ClassDesc тип класса или интерфейса.
default boolean isPrimitive()
Возвращает, описывает ли этот ClassDesc примитивный тип.
default ClassDesc nested(String nestedName)
Возвращает ClassDesc для вложенного класса типа класса или интерфейса, описанного этим ClassDesc.
default ClassDesc nested(String firstNestedName, String... moreNestedNames)
Возвращает ClassDesc для вложенного класса типа класса или интерфейса, описанного этим ClassDesc.
static ClassDesc of(String name)
Возвращает ClassDesc для типа класса или интерфейса, заданного именем класса или интерфейса, например "java.lang.String".
static ClassDesc of(String packageName, String className)
Возвращает ClassDesc для типа класса или интерфейса, заданного именем пакета и неопределённым (простым) именем класса или интерфейса.
static ClassDesc ofDescriptor(String descriptor)
Возвращает ClassDesc, заданный строкой описателя для класса, интерфейса, массива или примитивного типа.
default String packageName()
Возвращает имя пакета этого ClassDesc, если он описывает тип класса или интерфейса.

Методы, объявленные в интерфейсе java.lang.constant.ConstantDesc

resolveConstantDesc

Подробное описание методов

of

static ClassDesc of(String name)
Возвращает ClassDesc для типа класса или интерфейса, заданного именем класса или интерфейса, например, "java.lang.String". (Чтобы создать дескриптор для массива, используйте ofDescriptor(String) или arrayType(); чтобы создать дескриптор для примитивного типа, используйте ofDescriptor(String) или предопределённые константы в ConstantDescs).
Параметры:
name - полное имя (разделенное точками) бинарного имени класса
Возвращает:
ClassDesc, описывающий требуемый класс
Исключения:
NullPointerException - если аргумент null
IllegalArgumentException - если строка имени имеет неправильный формат

of

static ClassDesc of(String packageName, String className)
Возвращает ClassDesc для типа класса или интерфейса, заданного именем пакета и простым именем класса или интерфейса.
Параметры:
packageName - имя пакета (разделенное точками); если имя пакета пустое, класс считается в неназванном пакете
className - простое имя класса
Возвращает:
ClassDesc, описывающий требуемый класс
Исключения:
NullPointerException - если какой-либо аргумент null
IllegalArgumentException - если имя пакета или имя класса имеют неправильный формат

ofDescriptor

static ClassDesc ofDescriptor(String descriptor)
Возвращает ClassDesc по строке-дескриптору класса, интерфейса, массива или примитивного типа.
Примечание API:
Строка-дескриптор типа поля для типа не-массива — это либо однобуквенный код, соответствующий примитивному типу ("J", "I", "C", "S", "B", "D", "F", "Z", "V"), либо буква "L", за которой следует полное бинарное имя класса, за которым следует ";". Строка-дескриптор типа поля для массива — это символ "[" и за ним дескриптор типа компонента. Примеры допустимых строк дескрипторов типов включают "Ljava/lang/String;", "I", "[I", "V", "[Ljava/lang/String;", и т.д. См. JVMS 4.3.2 ("Дескрипторы полей") для более подробной информации.
Параметры:
descriptor - строка дескриптора поля
Возвращает:
ClassDesc, описывающий требуемый класс
Исключения:
NullPointerException - если аргумент null
IllegalArgumentException - если строка имени имеет неправильный формат
См. Спецификацию виртуальной машины Java:
4.3.2 Дескрипторы полей
4.4.1 Структура CONSTANT_Class_info

arrayType

default ClassDesc arrayType()
Возвращает ClassDesc для типа массива, тип компонента которого описан этим ClassDesc.
Определено в:
arrayType в интерфейсе TypeDescriptor.OfField<ClassDesc>
Возвращает:
ClassDesc, описывающий тип массива
Исключения:
IllegalStateException - если результирующий ClassDesc будет иметь ранг массива больше 255
См. Спецификацию виртуальной машины Java:
4.4.1 Структура CONSTANT_Class_info

arrayType

default ClassDesc arrayType(int rank)
Возвращает ClassDesc для типа массива указанного ранга, тип компонента которого описан этим ClassDesc.
Параметры:
rank - ранг массива
Возвращает:
ClassDesc, описывающий тип массива
Исключения:
IllegalArgumentException - если ранг меньше или равен нулю, или если ранг результирующего типа массива больше 255
См. Спецификацию виртуальной машины Java:
4.4.1 Структура CONSTANT_Class_info

nested

default ClassDesc nested(String nestedName)
Возвращает ClassDesc для вложенного класса типа класса или интерфейса, описанного этим ClassDesc.
Примеч. API:
Пример: если дескриптор d описывает класс java.util.Map, дескриптор для класса java.util.Map.Entry можно получить с помощью d.nested("Entry").
Параметры:
nestedName - простое имя вложенного класса
Возвращает:
ClassDesc, описывающий вложенный класс
Исключения:
NullPointerException - если аргумент null
IllegalStateException - если этот ClassDesc не описывает тип класса или интерфейса
IllegalArgumentException - если имя вложенного класса некорректно

nested

default ClassDesc nested(String firstNestedName, String... moreNestedNames)
Возвращает ClassDesc для вложенного класса типа класса или интерфейса, описанного этим ClassDesc.
Параметры:
firstNestedName - простое имя вложенного класса первого уровня
moreNestedNames - простое(ые) имя(а) вложенного(ых) класса(ов) оставшихся уровней
Возвращает:
ClassDesc, описывающий вложенный класс
Исключения:
NullPointerException - если любой аргумент или его содержимое null
IllegalStateException - если этот ClassDesc не описывает тип класса или интерфейса
IllegalArgumentException - если имя вложенного класса некорректно

isArray

default boolean isArray()
Возвращает, описывает ли этот ClassDesc тип массива.
Определено в:
isArray в интерфейсе TypeDescriptor.OfField<ClassDesc>
Возвращает:
описывает ли этот ClassDesc тип массива

isPrimitive

default boolean isPrimitive()
Возвращает, описывает ли этот ClassDesc примитивный тип.
Определено в:
isPrimitive в интерфейсе TypeDescriptor.OfField<ClassDesc>
Возвращает:
описывает ли этот ClassDesc примитивный тип

isClassOrInterface

default boolean isClassOrInterface()
Возвращает, описывает ли этот ClassDesc тип класса или интерфейса.
Возвращает:
описывает ли этот ClassDesc тип класса или интерфейса

componentType

default ClassDesc componentType()
Возвращает тип компонента этого ClassDesc, если он описывает тип массива, или null в противном случае.
Определено в:
componentType в интерфейсе TypeDescriptor.OfField<ClassDesc>
Возвращает:
ClassDesc, описывающий тип компонента, или null если этот дескриптор не описывает массив

packageName

default String packageName()
Возвращает имя пакета этого ClassDesc, если он описывает тип класса или интерфейса.
Возвращает:
имя пакета, или пустую строку, если класс в основном пакете, или этот ClassDesc не описывает тип класса или интерфейса

displayName

default String displayName()
Возвращает удобочитаемое имя типа, описываемого этим дескриптором.
Требования к реализации:

Стандартная реализация возвращает простое имя (например, int) для примитивных типов, простое имя класса для типов классов или интерфейсов, или имя отображения типа компонента, дополненное соответствующим количеством пар [] для типов массивов.

Возвращает:
удобочитаемое имя

descriptorString

String descriptorString()
Возвращает строку-описатель типа поля для этого типа
Указано в:
descriptorString в интерфейсе TypeDescriptor
Возвращает:
строку-описатель
См. Спецификацию виртуальной машины Java:
4.3.2 Описатели полей

equals

boolean equals(Object o)
Сравнивает указанный объект с этим описателем на равенство. Возвращает true тогда и только тогда, когда указанный объект также является ClassDesc и оба описывают один и тот же тип.
Переопределяет:
equals в классе Object
Параметры:
o - другой объект
Возвращает:
является ли этот описатель равным другому объекту
См. также:
  • Object.hashCode()
  • HashMap

© 1993, 2021, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/constant/ClassDesc.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API