Spec-Zone.ru › OpenJDK 27

Интерфейс Signature.ClassTypeSig

Все суперинтерфейсы:
Signature, Signature.RefTypeSig, Signature.ThrowableSig
Включающий интерфейс:
Signature
public static sealed interface Signature.ClassTypeSig extends Signature.RefTypeSig, Signature.ThrowableSig
Моделирует сигнатуру типа класса или интерфейса, возможно, параметризованного.

Примеры сигнатур типов классов:

  • Lcom/example/Outer; для Outer
    Имеет имя класса com/example/Outer и не имеет внешнего типа или аргументов типа.
  • Lcom/example/Outer$Nested<TA;>; для Outer.Nested<A>
    Имеет имя класса com/example/Outer$Nested, представляющее вложенный класс, не имеет внешнего типа и имеет один аргумент типа — переменную типа A.
  • Lcom/example/GenericOuter<TA;>.Inner; для GenericOuter<A>.Inner
    Имеет имя класса Inner, простое имя класса, внешний тип Lcom/example/GenericOuter<TA;>; для GenericOuter<A> и не имеет аргументов типа.

Если внешний тип существует, имя класса является простым именем вложенного типа. В противном случае это двоичное имя во внутренней форме (разделённое /).

Если вложенный тип не имеет параметризации включающего типа, его можно представить без внешнего типа и в виде внутреннего двоичного имени; в таком представлении вложенность обозначается с помощью $, а не ..

См. Спецификацию виртуальной машины Java:
4.7.9.1 Сигнатуры
Начиная с версии:
24
См. также:
  • Type
  • ParameterizedType

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

Вложенные классы и интерфейсы, объявленные в интерфейсе Signature

Signature.ArrayTypeSig, Signature.BaseTypeSig, Signature.ClassTypeSig, Signature.RefTypeSig, Signature.ThrowableSig, Signature.TypeArg, Signature.TypeParam, Signature.TypeVarSig
Модификатор и тип Интерфейс Описание
static interface  Signature.ArrayTypeSig
Моделирует сигнатуру типа массива.
static interface  Signature.BaseTypeSig
Моделирует сигнатуру примитивного типа (JLS §4.2) или void.
static interface  Signature.ClassTypeSig
Моделирует сигнатуру типа класса или интерфейса, возможно, параметризованного.
static interface  Signature.RefTypeSig
Моделирует сигнатуру ссылочного типа, которым может быть класс, интерфейс, переменная типа или тип массива.
static interface  Signature.ThrowableSig
Маркерный интерфейс для сигнатуры типа, допускающего выбрасывание.
static interface  Signature.TypeArg
Моделирует аргумент типа — аргумент параметра типа.
static interface  Signature.TypeParam
Моделирует сигнатуру параметра типа обобщённого класса, интерфейса, метода или конструктора, вводящего переменную типа.
static interface  Signature.TypeVarSig
Моделирует сигнатуру переменной типа.

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

Модификатор и тип Метод Описание
default ClassDesc classDesc()
Возвращает этот класс или интерфейс в виде символьного дескриптора.
String className()
Возвращает имя класса или интерфейса; если внешний тип отсутствует, включает имя пакета, разделённое косыми чертами.
static Signature.ClassTypeSig of(Signature.ClassTypeSig outerType, ClassDesc className, Signature.TypeArg... typeArgs)
Устарело, будет удалено: этот элемент API планируется удалить в будущей версии.
Полученная сигнатура не обозначает класс, представленный className, если outerType не равен null.
static Signature.ClassTypeSig of(Signature.ClassTypeSig outerType, String className, Signature.TypeArg... typeArgs)
Возвращает сигнатуру типа класса.
static Signature.ClassTypeSig of(ClassDesc className, Signature.TypeArg... typeArgs)
Возвращает сигнатуру класса или интерфейса без внешнего типа.
static Signature.ClassTypeSig of(String className, Signature.TypeArg... typeArgs)
Возвращает сигнатуру класса или интерфейса без внешнего типа.
Optional<Signature.ClassTypeSig> outerType()
Возвращает сигнатуру класса, членом которого является этот класс, только если это класс-член.
List<Signature.TypeArg> typeArgs()
Возвращает аргументы типа этого класса или интерфейса.

Методы, объявленные в интерфейсе Signature

signatureString
Модификатор и тип Метод Описание
String signatureString()
Возвращает строку исходной сигнатуры.

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

outerType

Optional<Signature.ClassTypeSig> outerType()
Возвращает сигнатуру класса, членом которого является этот класс, только если это класс-член. Обратите внимание, что внешний класс может отсутствовать, если этот класс является классом-членом без параметризованного включающего типа.
Возвращает:
сигнатуру класса, членом которого является этот класс, только если это класс-член
См. Спецификацию языка Java:
4.5 Параметризованные типы

className

String className()
Возвращает имя класса или интерфейса; если внешний тип отсутствует, включает имя пакета, разделённое косыми чертами. Обратите внимание, что если параметризованный включающий тип отсутствует, это имя может указывать на вложенный класс, используя в качестве разделителей $.
Возвращает:
имя класса или интерфейса; если внешний тип отсутствует, включает имя пакета, разделённое косыми чертами

classDesc

default ClassDesc classDesc()
Возвращает этот класс или интерфейс в виде символьного дескриптора.
Возвращает:
этот класс или интерфейс в виде символьного дескриптора

typeArgs

List<Signature.TypeArg> typeArgs()
Возвращает аргументы типа этого класса или интерфейса. Обратите внимание, что внешний тип может иметь дополнительные аргументы типа.
Возвращает:
аргументы типа этого класса или интерфейса
См. Спецификацию языка Java:
4.5 Параметризованные типы

of

static Signature.ClassTypeSig of(ClassDesc className, Signature.TypeArg... typeArgs)
Возвращает сигнатуру класса или интерфейса без внешнего типа.
Параметры:
className — имя класса или интерфейса
typeArgs — аргументы типа
Возвращает:
сигнатуру класса или интерфейса без внешнего типа
Выбрасывает:
IllegalArgumentException — если className не представляет класс или интерфейс либо не может быть обозначено

of

@Deprecated(since="26", forRemoval=true) static Signature.ClassTypeSig of(Signature.ClassTypeSig outerType, ClassDesc className, Signature.TypeArg... typeArgs)
Устарело, будет удалено: этот элемент API планируется удалить в будущей версии.
Полученная сигнатура не обозначает класс, представленный className, если outerType не равен null. Вместо этого используйте of(ClassTypeSig, String, TypeArg...).
Возвращает сигнатуру класса или интерфейса.
Параметры:
outerType — сигнатура внешнего типа; может быть null
className — имя этого класса или интерфейса
typeArgs — аргументы типа
Возвращает:
сигнатуру класса или интерфейса
Выбрасывает:
IllegalArgumentException — если className не представляет класс или интерфейс либо не может быть обозначено

of

static Signature.ClassTypeSig of(String className, Signature.TypeArg... typeArgs)
Возвращает сигнатуру класса или интерфейса без внешнего типа.
Параметры:
className — имя класса или интерфейса; для разделения можно использовать /
typeArgs — аргументы типа
Возвращает:
сигнатуру класса или интерфейса без внешнего типа
Выбрасывает:
IllegalArgumentException — если className не может быть обозначено

of

static Signature.ClassTypeSig of(Signature.ClassTypeSig outerType, String className, Signature.TypeArg... typeArgs)
Возвращает сигнатуру типа класса.
Параметры:
outerType — сигнатура внешнего типа; может быть null
className — имя этого класса или интерфейса; если внешний тип отсутствует, для разделения можно использовать /
typeArgs — аргументы типа
Возвращает:
сигнатуру типа класса
Выбрасывает:
IllegalArgumentException — если className не может быть обозначено

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и работающие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

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

Spec-Zone.ru

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