Spec-Zone.ru › OpenJDK 24

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

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(java.lang.CharSequence)

getAllPackageElements

default Set<? extends PackageElement> getAllPackageElements(CharSequence name)
Возвращает все элементы пакета с данным каноническим именем. Может быть более одного элемента пакета с одинаковым каноническим именем, если элементы пакета находятся в разных модулях.
Требования к реализации:
По умолчанию этот метод вызывает getAllModuleElements и сохраняет результат. Если множество модулей пусто, вызывается getPackageElement(name) с аргументом имени. Если getPackageElement(name) равно null, возвращается пустое множество элементов пакета; в противном случае возвращается множество с единственным элементом — найденным элементом пакета. Если множество модулей непусто, модули перебираются, и любые результаты, отличные от null, вызова getPackageElement(module, name), накапливаются в множестве. Затем возвращается это множество.
Параметры:
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(java.lang.CharSequence)

getAllTypeElements

default Set<? extends TypeElement> getAllTypeElements(CharSequence name)
Возвращает все элементы типа с данным каноническим именем. Может быть более одного элемента типа с одинаковым каноническим именем, если элементы типа находятся в разных модулях.
Требования к реализации:
По умолчанию этот метод вызывает getAllModuleElements и сохраняет результат. Если множество модулей пусто, вызывается getTypeElement(name) с аргументом имени. Если getTypeElement(name) равно null, возвращается пустое множество элементов типа; в противном случае возвращается множество с единственным элементом — найденным элементом типа. Если множество модулей непусто, модули перебираются, и любые результаты, отличные от null, вызова getTypeElement(module, name), накапливаются в множестве. Затем возвращается это множество.
Параметры:
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 Note:
Документационные комментарии обрабатываются стандартным 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. Пакет класса или интерфейса верхнего уровня — это его внешний пакет. В противном случае, пакет элемента равен пакету внешнего элемента.
Parameters:
e - проверяемый элемент
Returns:
пакет элемента

getModuleOf

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

getAllMembers

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

getOutermostTypeElement

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

getAllAnnotationMirrors

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

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

Parameters:
e - проверяемый элемент
Returns:
все аннотации элемента
See Also:
  • Element.getAnnotationMirrors()
  • AnnotatedConstruct

hides

boolean hides(Element hider, Element hidden)
Проверяет, скрывает ли один тип, метод или поле другой.
Parameters:
hider - первый элемент
hidden - второй элемент
Returns:
true тогда и только тогда, когда первый элемент скрывает второй
See Java Language Specification:
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"));
Parameters:
overrider - первый метод, потенциальный переопределяющий
overridden - второй метод, потенциально переопределяемый
type - класс или интерфейс, членом которого является первый метод
Returns:
true тогда и только тогда, когда первый метод переопределяет второй
See Java Language Specification:
8.4.8 Наследование, переопределение и скрытие
9.4.1 Наследование и переопределение

getConstantExpression

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

printElements

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

getName

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

Интерфейс функционального типа

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

Является ли модуль автоматическим

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

Тело константы перечисления

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

Компонент записи для

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

Является ли каноническим конструктором

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

Является ли компактным конструктором

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 США.
Все права защищены. Использование подчиняется условиям лицензии и политике перераспределения документации.
DRAFT 24-ea+36-Debian-1

© 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://download.java.net/java/early_access/jdk24/docs/api/java.compiler/javax/lang/model/util/Elements.html

Spec-Zone.ru

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