Spec-Zone.ru › OpenJDK 25

Элементы интерфейса

public interface Elements
Вспомогательные методы для работы с элементами программы.

Примечание о совместимости: В будущих выпусках платформы в этот интерфейс могут быть добавлены методы.

Начиная с версии:
1.6
См. также:
  • ProcessingEnvironment.getElementUtils()

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

Модификатор и тип Интерфейс Описание
static enum  Elements.DocCommentKind
Вид комментария документации.
static enum  Elements.Origin
Происхождение элемента или другого элемента языковой модели.

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

Модификатор и тип Метод Описание
List<? extends AnnotationMirror> getAllAnnotationMirrors(Element e)
Возвращает все аннотации, присутствующие на элементе, как непосредственно, так и унаследованные.
List<? extends Element> getAllMembers(TypeElement type)
Возвращает все члены элемента типа, как унаследованные, так и объявленные непосредственно.
default Set<? extends ModuleElement> getAllModuleElements()
Возвращает все элементы модулей в текущем окружении.
default Set<? extends PackageElement> getAllPackageElements(CharSequence name)
Возвращает все элементы пакетов с указанным каноническим именем.
default Set<? extends TypeElement> getAllTypeElements(CharSequence name)
Возвращает все элементы типов с указанным каноническим именем.
Name getBinaryName(TypeElement type)
Возвращает бинарное имя элемента типа.
String getConstantExpression(Object value)
Возвращает текст константного выражения, представляющего примитивное значение или строку.
String getDocComment(Element e)
Возвращает текст комментария документации («JavaDoc») элемента.
default Elements.DocCommentKind getDocCommentKind(Element e)
Возвращает вид комментария документации для указанного элемента или null, если комментарий отсутствует или его вид неизвестен.
Map<? extends ExecutableElement, ? extends AnnotationValue> getElementValuesWithDefaults(AnnotationMirror a)
Возвращает значения элементов аннотации, включая значения по умолчанию.
default TypeElement getEnumConstantBody(VariableElement enumConstant)
Возвращает тело класса константы enum, если аргумент является константой enum, объявленной с необязательным телом класса, и null в противном случае.
default JavaFileObject getFileObjectOf(Element e)
Возвращает файловый объект для этого элемента или null, если такого файлового объекта нет.
default ModuleElement getModuleElement(CharSequence name)
Возвращает элемент модуля по его полному имени.
default ModuleElement getModuleOf(Element e)
Возвращает модуль элемента.
Name getName(CharSequence cs)
Возвращает имя с той же последовательностью символов, что и аргумент.
default Elements.Origin getOrigin(AnnotatedConstruct c, AnnotationMirror a)
Возвращает происхождение указанного зеркала аннотации.
default Elements.Origin getOrigin(Element e)
Возвращает происхождение указанного элемента.
default Elements.Origin getOrigin(ModuleElement m, ModuleElement.Directive directive)
Возвращает происхождение указанной директивы модуля.
default TypeElement getOutermostTypeElement(Element e)
Возвращает самый внешний элемент типа, содержащий данный элемент, если такой содержащий элемент существует; в противном случае возвращает null.
PackageElement getPackageElement(CharSequence name)
Возвращает пакет по его полному имени, если в окружении можно однозначно определить пакет.
default PackageElement getPackageElement(ModuleElement module, CharSequence name)
Возвращает пакет по его полному имени, видимому из указанного модуля.
PackageElement getPackageOf(Element e)
Возвращает пакет элемента.
TypeElement getTypeElement(CharSequence name)
Возвращает элемент типа по его каноническому имени, если в окружении можно однозначно определить элемент типа.
default TypeElement getTypeElement(ModuleElement module, CharSequence name)
Возвращает элемент типа по его каноническому имени, видимому из указанного модуля.
boolean hides(Element hider, Element hidden)
Проверяет, скрывает ли один тип, метод или поле другой.
default boolean isAutomaticModule(ModuleElement module)
Возвращает true, если элемент модуля является автоматическим модулем, и false в противном случае.
default boolean isBridge(ExecutableElement e)
Возвращает true, если исполняемый элемент является методом-мостом, и false в противном случае.
default boolean isCanonicalConstructor(ExecutableElement e)
Возвращает true, если можно определить, что исполняемый элемент является каноническим конструктором записи, и false в противном случае.
default boolean isCompactConstructor(ExecutableElement e)
Возвращает true, если можно определить, что исполняемый элемент является компактным конструктором записи, и false в противном случае.
boolean isDeprecated(Element e)
Возвращает true, если элемент устарел, и false в противном случае.
boolean isFunctionalInterface(TypeElement type)
Возвращает true, если элемент типа является функциональным интерфейсом, и false в противном случае.
boolean overrides(ExecutableElement overrider, ExecutableElement overridden, TypeElement type)
Проверяет, переопределяет ли один метод другой метод, выступая в качестве члена заданного класса или интерфейса.
void printElements(Writer w, Element... elements)
Выводит представление элементов в указанный поток вывода в заданном порядке.
default RecordComponentElement recordComponentFor(ExecutableElement accessor)
Возвращает компонент записи для указанного метода доступа.

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

getPackageElement

PackageElement getPackageElement(CharSequence name)
Возвращает пакет по его полному имени, если пакет однозначно определяется в среде. При работе с модулями поиск пакетов с заданным именем выполняется в два этапа:
  • поиск непустых пакетов с заданным именем, возвращаемых методом getPackageElement(ModuleElement, CharSequence), где переданный ModuleElement является любым корневым модулем,
  • если на первом этапе получен пустой список, поиск наблюдаемых пакетов с заданным именем во всех модулях
Если в результате этого процесса получен список с одним элементом, возвращается этот элемент, в противном случае возвращается null.
Параметры:
name — полное имя пакета или пустая строка для безымянного пакета
Возвращает:
указанный пакет или null, если пакет невозможно однозначно определить.

getPackageElement

default PackageElement getPackageElement(ModuleElement module, CharSequence name)
Возвращает пакет по его полному имени, видимому из указанного модуля.
Требования к реализации:
Реализация этого метода по умолчанию возвращает null.
Параметры:
module — модуль, относительно которого следует выполнять поиск
name — полное имя пакета или пустая строка для безымянного пакета
Возвращает:
указанный пакет или null, если его не удалось найти
Начиная с:
9
См. также:
  • getAllPackageElements(CharSequence)

getAllPackageElements

default Set<? extends PackageElement> getAllPackageElements(CharSequence name)
Возвращает все элементы пакетов с заданным каноническим именем. Элементов пакетов с одинаковым каноническим именем может быть несколько, если они находятся в разных модулях.
Требования к реализации:
Реализация этого метода по умолчанию вызывает getAllModuleElements и сохраняет результат. Если множество модулей пусто, вызывается getPackageElement(name) с переданным аргументом имени. Если getPackageElement(name) равно null, возвращается пустое множество элементов пакетов; в противном случае возвращается множество из одного элемента, содержащие найденный элемент пакета. Если множество модулей не пусто, выполняется перебор модулей, а все результаты вызова getPackageElement(module, name), отличные от null, накапливаются во множестве. Затем это множество возвращается.
Параметры:
name — каноническое имя
Возвращает:
элементы пакетов или пустое множество, если пакет с таким именем не найден
Начиная с:
9
См. также:
  • getPackageElement(ModuleElement, CharSequence)

getTypeElement

TypeElement getTypeElement(CharSequence name)
Возвращает элемент типа по его каноническому имени, если элемент типа однозначно определяется в среде. При работе с модулями поиск элементов типов с заданным именем выполняется в два этапа:
  • поиск элементов типов с заданным именем, возвращаемых методом getTypeElement(ModuleElement, CharSequence), где переданный ModuleElement является любым корневым модулем,
  • если на первом этапе получен пустой список, поиск наблюдаемых элементов типов с заданным именем во всех модулях
Если в результате этого процесса получен список с одним элементом, возвращается этот элемент, в противном случае возвращается null.
Параметры:
name — каноническое имя
Возвращает:
именованный элемент типа или null, если элемент типа невозможно однозначно определить.

getTypeElement

default TypeElement getTypeElement(ModuleElement module, CharSequence name)
Возвращает элемент типа по его каноническому имени, видимому из указанного модуля.
Требования к реализации:
Реализация этого метода по умолчанию возвращает null.
Параметры:
module — модуль, относительно которого следует выполнять поиск
name — каноническое имя
Возвращает:
именованный элемент типа или null, если его не удалось найти
Начиная с:
9
См. также:
  • getAllTypeElements(CharSequence)

getAllTypeElements

default Set<? extends TypeElement> getAllTypeElements(CharSequence name)
Возвращает все элементы типов с заданным каноническим именем. Элементов типов с одинаковым каноническим именем может быть несколько, если они находятся в разных модулях.
Требования к реализации:
Реализация этого метода по умолчанию вызывает getAllModuleElements и сохраняет результат. Если множество модулей пусто, вызывается getTypeElement(name) с переданным аргументом имени. Если getTypeElement(name) равно null, возвращается пустое множество элементов типов; в противном случае возвращается множество из одного элемента, содержащие найденный элемент типа. Если множество модулей не пусто, выполняется перебор модулей, а все результаты вызова getTypeElement(module, name), отличные от null, накапливаются во множестве. Затем это множество возвращается.
Параметры:
name — каноническое имя
Возвращает:
элементы типов или пустое множество, если тип с таким именем не найден
Начиная с:
9
См. также:
  • getTypeElement(ModuleElement, CharSequence)

getModuleElement

default ModuleElement getModuleElement(CharSequence name)
Возвращает элемент модуля по его полному имени. Если запрошенный модуль не найден, возвращается null. Один из случаев, когда модуль невозможно найти, — если среда не включает модули, например среда обработки аннотаций настроена на версию исходного кода без модулей.
Требования к реализации:
Реализация этого метода по умолчанию возвращает null.
Параметры:
name — имя или пустая строка для безымянного модуля
Возвращает:
именованный элемент модуля или null, если его не удалось найти
Начиная с:
9
См. также:
  • getAllModuleElements()

getAllModuleElements

default Set<? extends ModuleElement> getAllModuleElements()
Возвращает все элементы модулей в текущей среде. Если модули отсутствуют, возвращается пустое множество. Модули могут отсутствовать, если среда не включает их, например среда обработки аннотаций настроена на версию исходного кода без модулей.
Примечание API:
Если среда включает модули, могут возвращаться как именованные, так и безымянные модули.
Требования к реализации:
Реализация этого метода по умолчанию возвращает пустое множество.
Возвращает:
известные элементы модулей или пустое множество, если модулей нет
Начиная с:
9
См. также:
  • getModuleElement(CharSequence)

getElementValuesWithDefaults

Map<? extends ExecutableElement, ? extends AnnotationValue> getElementValuesWithDefaults(AnnotationMirror a)
Возвращает значения элементов аннотации, включая значения по умолчанию.
Параметры:
a — проверяемая аннотация
Возвращает:
значения элементов аннотации, включая значения по умолчанию
См. также:
  • AnnotationMirror.getElementValues()

getDocComment

String getDocComment(Element e)
Возвращает текст комментария документации («JavaDoc») элемента.

Комментарий документации элемента — это особый вид комментария, который непосредственно предшествует элементу, если не учитывать пробельные символы, аннотации и другие комментарии, которые сами не являются комментариями документации.

Существует два вида комментариев документации: основанные на традиционных комментариях и основанные на последовательности комментариев в конце строки. Для обоих видов возвращаемый текст комментария документации представляет собой обработанную форму комментария, как он записан в исходном коде, согласно приведённому ниже описанию.

Традиционный комментарий документации — это традиционный комментарий, начинающийся с «/**» и заканчивающийся отдельным «*/». (Таким образом, такой комментарий содержит не менее трёх символов «*».) Строки такого комментария обрабатываются следующим образом:

  • Начальный «/**» удаляется, как и все непосредственно следующие за ним пробелы в этой строке. Если после этого в строке не остаётся символов, она не вносит вклад в возвращаемый комментарий.
  • Для последующих строк комментария документации, начиная после начального «/**», если строки начинаются с нуля или более пробельных символов, за которыми следует один или более символов «*», эти начальные пробельные символы удаляются, а также удаляются все идущие подряд символы «*», расположенные после пробелов или в начале строки. Если же строка не имеет описанного префикса, она сохраняется целиком.
  • Конечный «*/» удаляется. Для строки с конечным «*/» также удаляются начальные пробелы и символы «*», как описано выше.
  • Затем обработанные строки объединяются, разделяются символами новой строки («\n») и возвращаются.

Комментарий документации в конце строки — это последовательность расположенных подряд комментариев в конце строки, каждый из которых находится на отдельной строке (без учёта пробельных символов в начале строки) и начинается с «///». Строки такого комментария обрабатываются следующим образом:

  • Из каждой строки удаляются начальные пробельные символы и три начальных символа «/».
  • Строки сдвигаются влево путём удаления начальных пробельных символов, пока непустая строка с наименьшим количеством начальных пробельных символов не останется без них.
  • Дополнительные начальные пробельные символы и все конечные пробельные символы каждой строки сохраняются.
  • Затем обработанные строки объединяются, разделяются символами новой строки («\n») и возвращаются. Если последняя строка не пустая, возвращаемое значение не будет завершаться символом новой строки.
Примечание API:
Комментарии документации обрабатываются стандартным doclet, используемым инструментом javadoc для создания документации API.
Параметры:
e — проверяемый элемент
Возвращает:
комментарий документации элемента или null, если его нет
См. Спецификацию языка Java:
3.6 Пробельные символы
3.7 Комментарии

getDocCommentKind

default Elements.DocCommentKind getDocCommentKind(Element e)
Возвращает вид комментария документации для заданного элемента или null, если комментария нет либо его вид неизвестен.
Требования к реализации:
Реализация этого метода по умолчанию возвращает null.
Параметры:
e — проверяемый элемент
Возвращает:
вид комментария документации для заданного элемента или null, если комментария нет либо его вид неизвестен
Начиная с:
23

isDeprecated

boolean isDeprecated(Element e)
Возвращает true, если элемент устарел, и false в противном случае.
Параметры:
e — проверяемый элемент
Возвращает:
true, если элемент устарел, и false в противном случае

getOrigin

default Elements.Origin getOrigin(Element e)
Возвращает происхождение заданного элемента.

Обратите внимание: если этот метод возвращает EXPLICIT, а элемент создан из файла класса, он может фактически не соответствовать явно объявленной конструкции в исходном коде. Это обусловлено ограничениями точности формата файлов классов при сохранении информации из исходного кода. Например, некоторые версии формата файлов классов не сохраняют информацию о том, был ли конструктор явно объявлен программистом или неявно объявлен как конструктор по умолчанию.

Требования к реализации:
Реализация этого метода по умолчанию возвращает EXPLICIT.
Параметры:
e — проверяемый элемент
Возвращает:
происхождение заданного элемента
Начиная с:
9

getOrigin

default Elements.Origin getOrigin(AnnotatedConstruct c, AnnotationMirror a)
Возвращает происхождение заданного зеркала аннотации. Зеркало аннотации является предписанным, если оно представляет собой неявно объявленную контейнерную аннотацию, используемую для хранения повторяющихся аннотаций повторяемого интерфейса аннотации.

Обратите внимание: если этот метод возвращает EXPLICIT, а зеркало аннотации создано из файла класса, элемент может фактически не соответствовать явно объявленной конструкции в исходном коде. Это обусловлено ограничениями точности формата файлов классов при сохранении информации из исходного кода. Например, некоторые версии формата файлов классов не сохраняют информацию о том, была ли аннотация явно объявлена программистом или неявно объявлена как контейнерная аннотация.

Требования к реализации:
Реализация этого метода по умолчанию возвращает EXPLICIT.
Параметры:
c — конструкция, которую изменяет зеркало аннотации
a — проверяемое зеркало аннотации
Возвращает:
происхождение заданного зеркала аннотации
См. Спецификацию языка Java:
9.6.3 Повторяемые интерфейсы аннотаций
9.7.5 Несколько аннотаций одного интерфейса
Начиная с:
9

getOrigin

default Elements.Origin getOrigin(ModuleElement m, ModuleElement.Directive directive)
Возвращает происхождение заданной директивы модуля.

Обратите внимание: если этот метод возвращает EXPLICIT, а директива модуля создана из файла класса, она может фактически не соответствовать явно объявленной конструкции в исходном коде. Это обусловлено ограничениями точности формата файлов классов при сохранении информации из исходного кода. Например, некоторые версии формата файлов классов не сохраняют информацию о том, была ли директива uses явно объявлена программистом или добавлена как синтетическая конструкция.

Обратите внимание: из-за ограничений точности формата файлов классов при сохранении информации из исходного кода реализация может быть не в состоянии надёжно определить происхождение директивы, созданной из файла класса.

Требования к реализации:
Реализация этого метода по умолчанию возвращает EXPLICIT.
Параметры:
m — модуль, к которому относится директива
directive — проверяемая директива модуля
Возвращает:
происхождение заданной директивы модуля
Начиная с:
9

isBridge

default boolean isBridge(ExecutableElement e)
Возвращает true, если исполняемый элемент является мостовым методом, и false в противном случае.
Требования к реализации:
Реализация этого метода по умолчанию возвращает false.
Параметры:
e — проверяемый исполняемый элемент
Возвращает:
true, если исполняемый элемент является мостовым методом, и false в противном случае
Начиная с:
9

getBinaryName

Name getBinaryName(TypeElement type)
Возвращает бинарное имя элемента типа.
Параметры:
type — проверяемый элемент типа
Возвращает:
бинарное имя элемента типа
См. Спецификацию языка Java:
13.1 Форма бинарного представления
См. также:
  • TypeElement.getQualifiedName()

getPackageOf

PackageElement getPackageOf(Element e)
Возвращает пакет элемента. Пакет пакета — это он сам. Пакет модуля — null. Пакет класса или интерфейса верхнего уровня — это его внешний пакет. В остальных случаях пакетом элемента является пакет его внешнего элемента.
Параметры:
e — проверяемый элемент
Возвращает:
пакет элемента

getModuleOf

default ModuleElement getModuleOf(Element e)
Возвращает модуль элемента. Модуль модуля — это он сам. Если у пакета в качестве внешнего элемента указан модуль, этот модуль является модулем пакета. Если внешний элемент пакета — null, для модуля пакета возвращается null. (Пакет может иметь null модуль, например, если среда не включает модули, как в случае среды обработки аннотаций, настроенной на версию исходного кода без модулей.) В остальных случаях модулем элемента является модуль пакета элемента.
Требования к реализации:
Реализация этого метода по умолчанию возвращает null.
Параметры:
e — проверяемый элемент
Возвращает:
модуль элемента
Начиная с:
9

getAllMembers

List<? extends Element> getAllMembers(TypeElement type)
Возвращает все члены элемента типа, как унаследованные, так и объявленные непосредственно. Для класса результат также включает его конструкторы, но не локальные или анонимные классы.
Примечание API:
Элементы определённых видов можно выделить с помощью методов класса ElementFilter.
Параметры:
type — проверяемый тип
Возвращает:
все члены типа
См. также:
  • Element.getEnclosedElements()

getOutermostTypeElement

default TypeElement getOutermostTypeElement(Element e)
Возвращает самый внешний элемент типа, в который входит элемент, если такой содержащий элемент существует; в противном случае возвращает null. Модули и пакеты не имеют содержащего элемента типа, поэтому для элементов этих видов возвращается null. Класс или интерфейс верхнего уровня является собственным самым внешним элементом типа.
Требования к реализации:
Реализация этого метода по умолчанию сначала проверяет вид аргумента. Для элементов видов PACKAGE, MODULE и OTHER возвращается null. Для элементов других видов проверяется, является ли элемент классом или интерфейсом верхнего уровня. Если да, возвращается этот элемент; в противном случае выполняется переход по цепочке внешних элементов, пока не будет найден класс или интерфейс верхнего уровня. Возвращается элемент, соответствующий найденному классу или интерфейсу верхнего уровня.
Параметры:
e — проверяемый элемент
Возвращает:
самый внешний элемент типа, в который входит элемент, если такой содержащий элемент существует; в противном случае возвращает null
Начиная с:
18
См. также:
  • Element.getEnclosingElement()

getAllAnnotationMirrors

List<? extends AnnotationMirror> getAllAnnotationMirrors(Element e)
Возвращает все аннотации, присутствующие на элементе, как непосредственно присутствующие, так и присутствующие через наследование.

Обратите внимание, что все аннотации, возвращаемые этим методом, являются аннотациями объявления.

Параметры:
e — проверяемый элемент
Возвращает:
все аннотации элемента
См. также:
  • Element.getAnnotationMirrors()
  • AnnotatedConstruct

hides

boolean hides(Element hider, Element hidden)
Проверяет, скрывает ли один тип, метод или поле другой тип, метод или поле.
Параметры:
hider — первый элемент
hidden — второй элемент
Возвращает:
true тогда и только тогда, когда первый элемент скрывает второй
См. Спецификацию языка Java:
8.4.8 Наследование, переопределение и сокрытие

overrides

boolean overrides(ExecutableElement overrider, ExecutableElement overridden, TypeElement type)
Проверяет, переопределяет ли один метод другой метод в качестве члена заданного класса или интерфейса. Когда неабстрактный метод переопределяет абстрактный, считается, что первый также реализует второй. Как следует из JLS 8.4.8.1, метод не переопределяет сам себя. Отношение переопределения иррефлексивно.

В простейшем и наиболее типичном случае использования значение параметра type будет просто классом или интерфейсом, непосредственно содержащим overrider (возможно, переопределяющий метод). Например, предположим, что m1 представляет метод String.hashCode, а m2 представляет Object.hashCode. Тогда можно спросить, переопределяет ли m1 метод m2 в классе String (переопределяет):

assert elements.overrides(m1, m2, elements.getTypeElement("java.lang.String"));
Более интересный случай иллюстрирует следующий пример: метод в классе A не переопределяет одноимённый метод в интерфейсе B:
class A { public void m() {} }
interface B { void m(); }
...
m1 = ...; // A.m
m2 = ...; // B.m
assert ! elements.overrides(m1, m2, elements.getTypeElement("A"));
Однако если рассматривать метод как член третьего класса C, то метод в A переопределяет метод в B:
class C extends A implements B {}
...
assert elements.overrides(m1, m2, elements.getTypeElement("C"));
В соответствии с использованием аннотации @Override, если интерфейс объявляет метод, эквивалентный по сигнатуре методу public класса java.lang.Object, такой метод интерфейса считается переопределяющим соответствующий метод Object; например:
interface I {
  @Override
  String toString();
}
...
assert elements.overrides(elementForItoString,
                          elementForObjecttoString,
                          elements.getTypeElement("I"));
Примечание к API:
При определении того, переопределяет ли один метод другой, этот метод проверяет имя метода, сигнатуру, отношение подкласса и доступность, как указано в JLS 8.4.8.1. Кроме того, реализация может выполнять более строгие проверки, включая проверку модификаторов методов, типов возвращаемых значений и типов исключений, как описано в JLS 8.4.8.1 и 8.4.8.3. Обратите внимание, что такие дополнительные проверки во время компиляции не гарантируются и могут различаться в разных реализациях.
Параметры:
overrider — первый метод, возможно переопределяющий
overridden — второй метод, возможно переопределяемый
type — класс или интерфейс, членом которого является первый метод
Возвращает:
true тогда и только тогда, когда первый метод переопределяет второй
См. Спецификацию языка Java:
8.4.8 Наследование, переопределение и сокрытие
9.4.1 Наследование и переопределение

getConstantExpression

String getConstantExpression(Object value)
Возвращает текст константного выражения, представляющего примитивное значение или строку. Возвращаемый текст имеет формат, подходящий для представления значения в исходном коде.
Параметры:
value — примитивное значение или строка
Возвращает:
текст константного выражения
Вызывает:
IllegalArgumentException — если аргумент не является примитивным значением или строкой
См. также:
  • VariableElement.getConstantValue()

printElements

void printElements(Writer w, Element... elements)
Выводит представление элементов в заданный объект записи в указанном порядке. Основное назначение этого метода — диагностика. Точный формат вывода не специфицирован и может измениться.
Параметры:
w — объект записи, в который выводятся данные
elements — элементы для вывода

getName

Name getName(CharSequence cs)
Возвращает имя с той же последовательностью символов, что и аргумент.
Параметры:
cs — последовательность символов, которую нужно вернуть в качестве имени
Возвращает:
имя с той же последовательностью символов, что и аргумент

isFunctionalInterface

boolean isFunctionalInterface(TypeElement type)
Возвращает true, если элемент типа является функциональным интерфейсом, и false в противном случае.
Параметры:
type — проверяемый элемент типа
Возвращает:
true, если элемент типа является функциональным интерфейсом, и false в противном случае
См. Спецификацию языка Java:
9.8 Функциональные интерфейсы
Начиная с:
1.8

isAutomaticModule

default boolean isAutomaticModule(ModuleElement module)
Возвращает true, если элемент модуля является автоматическим модулем, и false в противном случае.
Требования к реализации:
Реализация этого метода по умолчанию возвращает false.
Параметры:
module — проверяемый элемент модуля
Возвращает:
true, если элемент модуля является автоматическим модулем, и false в противном случае
См. Спецификацию языка Java:
7.7.1 Зависимости
Начиная с:
17

getEnumConstantBody

default TypeElement getEnumConstantBody(VariableElement enumConstant)
Возвращает тело класса константы enum, если аргумент является константой enum, объявленной с необязательным телом класса, и null в противном случае.
Требования к реализации:
Реализация этого метода по умолчанию выбрасывает UnsupportedOperationException, если аргумент является константой enum, и выбрасывает IllegalArgumentException, если это не так.
Параметры:
enumConstant — константа перечисления
Возвращает:
тело класса константы enum, если аргумент является константой enum, объявленной с необязательным телом класса, и null в противном случае
Вызывает:
IllegalArgumentException — если аргумент не является константой enum
См. Спецификацию языка Java:
8.9.1 Константы перечисления
Начиная с:
22

recordComponentFor

default RecordComponentElement recordComponentFor(ExecutableElement accessor)
Возвращает компонент записи для заданного метода доступа. Возвращает null, если заданный метод не является методом доступа к компоненту записи.
Требования к реализации:
Реализация этого метода по умолчанию проверяет, имеет ли элемент, содержащий метод доступа, вид RECORD. Если да, то все компоненты записи содержащего элемента метода доступа отбираются вызовом ElementFilter.recordComponentsIn(Iterable). Если метод доступа хотя бы одного из полученных компонентов записи совпадает с методом доступа, переданным этому методу в качестве параметра, возвращается этот компонент записи; в противном случае возвращается null.
Параметры:
accessor — метод, для которого нужно найти компонент записи.
Возвращает:
компонент записи или null, если заданный метод не является методом доступа к компоненту записи
Начиная с:
16

isCanonicalConstructor

default boolean isCanonicalConstructor(ExecutableElement e)
Возвращает true, если можно определить, что исполняемый элемент является каноническим конструктором записи, и false в противном случае. Обратите внимание, что в некоторых случаях может быть недостаточно информации, чтобы определить, является ли конструктор каноническим, например, если исполняемый элемент создан на основе файла класса. В таких случаях возвращается false.
Требования к реализации:
Реализация этого метода по умолчанию всегда возвращает false.
Параметры:
e — проверяемый исполняемый элемент
Возвращает:
true, если можно определить, что исполняемый элемент является каноническим конструктором записи, и false в противном случае
См. Спецификацию языка Java:
8.10.4.1 Обычные канонические конструкторы
Начиная с:
20

isCompactConstructor

default boolean isCompactConstructor(ExecutableElement e)
Возвращает true, если можно определить, что исполняемый элемент является компактным конструктором записи, и false в противном случае. По определению компактный конструктор также является каноническим конструктором. Обратите внимание, что в некоторых случаях может быть недостаточно информации, чтобы определить, является ли конструктор компактным, например, если исполняемый элемент создан на основе файла класса. В таких случаях возвращается false.
Требования к реализации:
Реализация этого метода по умолчанию всегда возвращает false.
Параметры:
e — проверяемый исполняемый элемент
Возвращает:
true, если можно определить, что исполняемый элемент является компактным конструктором записи, и false в противном случае
См. Спецификацию языка Java:
8.10.4.2 Компактные канонические конструкторы
Начиная с:
20

getFileObjectOf

default JavaFileObject getFileObjectOf(Element e)
Возвращает файловый объект для этого элемента или null, если такого файлового объекта нет.

Возвращаемый файловый объект представляет эталонное представление информации, использованной для создания элемента. Например, если при компиляции или обработке аннотаций исходный файл класса Foo компилируется в файл класса, файловый объект, возвращаемый для элемента, представляющего Foo, будет соответствовать исходному файлу, а не файлу класса.

Реализация может не поддерживать функциональность этого метода; в таком случае выбрасывается UnsupportedOperationException.

В контексте обработки аннотаций возвращается ненулевое значение null, если элемент был включён в начальные входные данные или содержащий его файл был создан во время выполнения инструмента обработки аннотаций. В противном случае может быть возвращено значение null. При обработке аннотаций созданный файл класса может служить эталонным представлением элементов.

Если у пакета есть файловый объект, он будет файлом package-info. Пакет может существовать и не иметь файла package-info, даже если он (неявно) создан во время обработки аннотаций в результате создания исходных файлов или файлов классов в этом пакете. У безымянного пакета будет файл null, поскольку он не может быть объявлен в единице компиляции.

Если у модуля есть файловый объект, он будет файлом module-info. У безымянного модуля будет файл null, поскольку он не может быть объявлен в единице компиляции. У автоматического модуля будет файл null, поскольку он объявлен неявно.

Если у класса или интерфейса верхнего уровня public есть файловый объект, он будет исходным файлом или файлом класса, соответствующим этому классу или интерфейсу. В этом случае обычно начальная часть имени файла совпадает с именем класса или интерфейса. Одна единица компиляции может определять несколько классов и интерфейсов верхнего уровня, например основной класс public или интерфейсы, имя которых соответствует имени файла, а также один или несколько вспомогательных классов или интерфейсов, имена которых не соответствуют имени файла. Если исходный файл является эталонным представлением вспомогательного класса или интерфейса, возвращается файл основного класса. (Вспомогательный класс или интерфейс также может быть определён в исходном файле package-info; в этом случае возвращается файл package-info.) Если эталонным представлением вспомогательного класса или интерфейса служит файл класса, возвращается отдельный файл класса для вспомогательного класса.

Для вложенного класса или интерфейса с файловым объектом:

  • если эталонным представлением служит исходный файл, файловым объектом будет объект для самого внешнего содержащего класса или интерфейса
  • если эталонным представлением служит файл класса, файловым объектом будет объект для самого вложенного класса или интерфейса

Для других лексически содержащихся элементов, таких как переменные, методы и конструкторы, при наличии файлового объекта он будет объектом, связанным с содержащим элементом лексически содержащегося элемента.

Требования к реализации:
Реализация по умолчанию всегда выбрасывает UnsupportedOperationException.
Параметры:
e — элемент, для которого нужно найти файловый объект
Возвращает:
файловый объект для этого элемента или null, если такого файлового объекта нет
Вызывает:
UnsupportedOperationException — если эта функциональность не поддерживается
Начиная с:
18

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.compiler/javax/lang/model/util/Elements.html

Spec-Zone.ru

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