Интерфейс 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(String) или ofDescriptor(String); чтобы создать ClassDesc для типа массива, используйте ofDescriptor(String) либо сначала получите ClassDesc для типа компонента, а затем вызовите метод arrayType() или arrayType(int).
- Начиная с версии:
- 12
- См. также:
Краткое описание вложенных классов
Вложенные классы и интерфейсы, объявленные в интерфейсе TypeDescriptor
TypeDescriptor.OfField<F>, TypeDescriptor.OfMethod<F, M>
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
ClassDesc |
arrayType() |
|
ClassDesc |
arrayType |
|
default ClassDesc |
componentType() |
Возвращает тип компонента этого ClassDesc, если он описывает тип массива, или null в противном случае. |
String |
descriptorString() |
Возвращает строку дескриптора типа поля для этого типа |
String |
displayName() |
Возвращает удобочитаемое имя этого ClassDesc. |
boolean |
equals |
Сравнивает указанный объект с этим дескриптором на равенство. |
default boolean |
isArray() |
Возвращает, описывает ли этот ClassDesc тип массива. |
default boolean |
isClassOrInterface() |
Возвращает, описывает ли этот ClassDesc тип класса или интерфейса. |
default boolean |
isPrimitive() |
Возвращает, описывает ли этот ClassDesc примитивный тип. |
default ClassDesc |
nested |
|
default ClassDesc |
nested |
|
static ClassDesc |
of |
Возвращает ClassDesc для типа класса или интерфейса по имени класса или интерфейса, например "java.lang.String". |
static ClassDesc |
of |
Возвращает ClassDesc для типа класса или интерфейса по имени пакета и неквалифицированному (простому) имени класса или интерфейса. |
static ClassDesc |
ofDescriptor |
Возвращает ClassDesc по строке дескриптора класса, интерфейса, массива или примитивного типа. |
static ClassDesc |
ofInternalName |
Возвращает ClassDesc для типа класса или интерфейса по имени класса или интерфейса во внутреннем формате, например "java/lang/String". |
default String |
packageName() |
Возвращает имя пакета этого ClassDesc, если он описывает тип класса или интерфейса. |
Class |
resolveConstantDesc |
Подробное описание методов
of
static ClassDesc of(String name)
"java.lang.String". (Чтобы создать дескриптор для типа массива, используйте ofDescriptor(String) или arrayType(); чтобы создать дескриптор для примитивного типа, используйте ofDescriptor(String) или предварительно определённые константы в ConstantDescs).- Параметры:
-
name— полное двоичное имя класса (с разделителями-точками) - Возвращает:
- ClassDesc, описывающий нужный класс
- Вызывает исключение:
-
NullPointerException— если аргумент равенnull -
IllegalArgumentException— если строка имени имеет неверный формат - См. также:
ofInternalName
static ClassDesc ofInternalName(String name)
"java/lang/String".- Примечание к API:
- Чтобы создать дескриптор для типа массива, используйте
ofDescriptor(String)илиarrayType(); чтобы создать дескриптор для примитивного типа, используйтеofDescriptor(String)или предварительно определённые константы вConstantDescs. - Параметры:
-
name— полное имя класса во внутреннем формате (с разделителями-косыми чертами) - Возвращает:
- ClassDesc, описывающий нужный класс
- Вызывает исключение:
-
NullPointerException— если аргумент равенnull -
IllegalArgumentException— если строка имени имеет неверный формат - См. Спецификацию виртуальной машины Java:
- 4.2.1 Двоичные имена классов и интерфейсов
- Начиная с версии:
- 20
- См. также:
of
static ClassDesc of(String packageName, String className)
- Параметры:
-
packageName— имя пакета (с разделителями-точками); если имя пакета — пустая строка, класс считается принадлежащим безымянному пакету -
className— неквалифицированное (простое) имя класса - Возвращает:
- ClassDesc, описывающий нужный класс
- Вызывает исключение:
-
NullPointerException— если любой аргумент равенnull -
IllegalArgumentException— если имя пакета или имя класса имеет неверный формат
ofDescriptor
static ClassDesc ofDescriptor(String descriptor)
- Примечание к 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
ClassDesc arrayType()
- Определено в:
-
arrayTypeв интерфейсеTypeDescriptor.OfField<ClassDesc> - Возвращает:
- ClassDesc, описывающий тип массива
- Вызывает исключение:
-
IllegalStateException— если размерность результирующего ClassDesc превышает 255 - См. Спецификацию виртуальной машины Java:
- 4.4.1 Структура CONSTANT_Class_info
arrayType
ClassDesc arrayType(int rank)
- Параметры:
-
rank— размерность массива - Возвращает:
- ClassDesc, описывающий тип массива
- Вызывает исключение:
-
IllegalArgumentException— если размерность меньше или равна нулю либо размерность результирующего типа массива превышает 255 - См. Спецификацию виртуальной машины Java:
- 4.4.1 Структура CONSTANT_Class_info
nested
default ClassDesc nested(String nestedName)
- Примечание к 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)
- Параметры:
-
firstNestedName— неквалифицированное имя первого уровня вложенного класса -
moreNestedNames— неквалифицированные имена остальных уровней вложенного класса - Возвращает:
- ClassDesc, описывающий вложенный класс
- Вызывает исключение:
-
NullPointerException— если любой аргумент или его содержимое равноnull -
IllegalStateException— если этот ClassDesc не описывает тип класса или интерфейса -
IllegalArgumentException— если имя вложенного класса недопустимо
isArray
default boolean isArray()
- Определено в:
-
isArrayв интерфейсеTypeDescriptor.OfField<ClassDesc> - Возвращает:
- описывает ли этот ClassDesc тип массива
isPrimitive
default boolean isPrimitive()
- Определено в:
-
isPrimitiveв интерфейсеTypeDescriptor.OfField<ClassDesc> - Возвращает:
- описывает ли этот ClassDesc примитивный тип
isClassOrInterface
componentType
default ClassDesc componentType()
null в противном случае.- Определено в:
-
componentTypeв интерфейсеTypeDescriptor.OfField<ClassDesc> - Возвращает:
- ClassDesc, описывающий тип компонента, или
null, если этот дескриптор не описывает тип массива
packageName
displayName
String displayName()
ClassDesc. Для примитивных типов этот метод возвращает простое имя (например, int). Для типов классов или интерфейсов этот метод возвращает неквалифицированное имя класса. Для типов массивов этот метод возвращает удобочитаемое имя типа компонента с добавлением соответствующего количества пар [].- Возвращает:
- удобочитаемое имя этого
ClassDesc
descriptorString
String descriptorString()
- Определено в:
-
descriptorStringв интерфейсеTypeDescriptor - Возвращает:
- строку дескриптора
- См. Спецификацию виртуальной машины Java:
- 4.3.2 Дескрипторы полей
resolveConstantDesc
Class<?> resolveConstantDesc(MethodHandles.Lookup lookup) throws ReflectiveOperationException
ConstantDescMethodHandles.Lookup. Кэширование полученного значения не выполняется.- Определено в:
-
resolveConstantDescв интерфейсеConstantDesc - Параметры:
-
lookup—MethodHandles.Lookup, предоставляющий контекст разрешения имён и контроля доступа - Возвращает:
- разрешённое значение константы
- Вызывает исключение:
-
ReflectiveOperationException— если класс, метод или поле не удалось разрешить с помощью рефлексии в ходе разрешения - Начиная с версии:
- 21
equals
boolean equals(Object o)
true тогда и только тогда, когда указанный объект также является ClassDesc и оба описывают один и тот же тип.
© 1993, 2025, 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/25/docs/api/java.base/java/lang/constant/ClassDesc.html