Элементы интерфейса
public interface Elements
Примечание о совместимости: В будущих версиях платформы в этот интерфейс могут быть добавлены методы.
- С момента:
- 1.6
- См. также:
Краткое описание вложенных классов
| Модификатор и тип | Интерфейс | Описание |
|---|---|---|
static enum |
Elements.DocCommentKind |
Вид комментария документации. |
static enum |
Elements.Origin |
Происхождение элемента или другого элемента языка модели. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
List |
getAllAnnotationMirrors |
Возвращает все аннотации, присутствующие на элементе, независимо от того, присутствуют ли они непосредственно или через наследование. |
List |
getAllMembers |
Возвращает всех членов элемента типа, как унаследованные, так и объявленные напрямую. |
default Set |
getAllModuleElements() |
Возвращает все элементы модуля в текущей среде. |
default Set |
getAllPackageElements |
Возвращает все элементы пакета с заданным каноническим именем. |
default Set |
getAllTypeElements |
Возвращает все элементы типа с заданным каноническим именем. |
Name |
getBinaryName |
Возвращает бинарное имя элемента типа. |
String |
getConstantExpression |
Возвращает текст константного выражения, представляющего примитивное значение или строку. |
String |
getDocComment |
Возвращает текст комментария документации («JavaDoc») элемента. |
default Elements.DocCommentKind |
getDocCommentKind |
Возвращает вид комментария документации для данного элемента или null, если комментарий отсутствует или вид не известен. |
Map |
getElementValuesWithDefaults |
Возвращает значения элементов аннотации, включая значения по умолчанию. |
default TypeElement |
getEnumConstantBody |
Возвращает тело класса для константы enum, если аргумент является константой enum, объявленной с необязательным телом класса, null в противном случае. |
default JavaFileObject |
getFileObjectOf |
Возвращает объект файла для этого элемента или null, если такого объекта файла нет. |
default ModuleElement |
getModuleElement |
Возвращает элемент модуля по его полному квалифицированному имени. |
default ModuleElement |
getModuleOf |
Возвращает модуль элемента. |
Name |
getName |
Возвращает имя с той же последовательностью символов, что и аргумент. |
default Elements.Origin |
getOrigin |
Возвращает происхождение данного зеркала аннотации. |
default Elements.Origin |
getOrigin |
Возвращает происхождение данного элемента. |
default Elements.Origin |
getOrigin |
Возвращает происхождение данного директива модуля. |
default TypeElement |
getOutermostTypeElement |
Возвращает внешний элемент типа, в котором содержится элемент, если такой содержащий элемент существует; в противном случае возвращает
null. |
PackageElement |
getPackageElement |
Возвращает пакет по его полному квалифицированному имени, если пакет однозначно определяется в среде. |
default PackageElement |
getPackageElement |
Возвращает пакет по его полному квалифицированному имени, как он виден из заданного модуля. |
PackageElement |
getPackageOf |
Возвращает пакет элемента. |
TypeElement |
getTypeElement |
Возвращает элемент типа по его каноническому имени, если элемент типа однозначно определяется в среде. |
default TypeElement |
getTypeElement |
Возвращает элемент типа по его каноническому имени, как он виден из заданного модуля. |
boolean |
hides |
Проверяет, скрывает ли один тип, метод или поле другой. |
default boolean |
isAutomaticModule |
Возвращает true, если элемент модуля является автоматическим модулем, false в противном случае. |
default boolean |
isBridge |
Возвращает true, если исполняемый элемент является методом-мостом, false в противном случае. |
default boolean |
isCanonicalConstructor |
Возвращает true, если исполняемый элемент может быть определен как канонический конструктор записи,
false в противном случае. |
default boolean |
isCompactConstructor |
Возвращает true, если исполняемый элемент может быть определен как компактный конструктор записи,
false в противном случае. |
boolean |
isDeprecated |
Возвращает true, если элемент устарел, false в противном случае. |
boolean |
isFunctionalInterface |
Возвращает true, если элемент типа является функциональным интерфейсом, false в противном случае. |
boolean |
overrides |
Проверяет, переопределяет ли один метод, как член данного класса или интерфейса, другой метод. |
void |
printElements |
Выводит представление элементов в заданный писатель в указанном порядке. |
default RecordComponentElement |
recordComponentFor |
Возвращает компонент записи для данного доступа. |
Подробное описание методов
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
default Set<? extends PackageElement> getAllPackageElements(CharSequence name)
- Требования к реализации:
- По умолчанию этот метод вызывает
getAllModuleElementsи сохраняет результат. Если множество модулей пусто, вызываетсяgetPackageElement(name)с аргументом имени. ЕслиgetPackageElement(name)равноnull, возвращается пустое множество элементов пакета; в противном случае возвращается множество с единственным элементом — найденным элементом пакета. Если множество модулей непусто, модули перебираются, и любые результаты, отличные отnull, вызоваgetPackageElement(module, name), накапливаются в множестве. Затем возвращается это множество. - Параметры:
-
name- каноническое имя - Возвращает:
- элементы пакета или пустое множество, если пакет с данным именем не найден
- С:
- 9
- См. также:
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
default Set<? extends TypeElement> getAllTypeElements(CharSequence name)
- Требования к реализации:
- По умолчанию этот метод вызывает
getAllModuleElementsи сохраняет результат. Если множество модулей пусто, вызываетсяgetTypeElement(name)с аргументом имени. ЕслиgetTypeElement(name)равноnull, возвращается пустое множество элементов типа; в противном случае возвращается множество с единственным элементом — найденным элементом типа. Если множество модулей непусто, модули перебираются, и любые результаты, отличные отnull, вызоваgetTypeElement(module, name), накапливаются в множестве. Затем возвращается это множество. - Параметры:
-
name- каноническое имя - Возвращает:
- элементы типа или пустое множество, если тип с данным именем не найден
- С:
- 9
- См. также:
getModuleElement
default ModuleElement getModuleElement(CharSequence name)
null. Одна из ситуаций, когда модуль не найден, — это если среда не включает модули, например, среда обработки аннотаций, настроенная для версии исходного кода без модулей.- Требования к реализации:
- По умолчанию этот метод возвращает
null. - Параметры:
-
name- имя или пустая строка для безымянного модуля - Возвращает:
- элемент названного модуля или
null, если он не найден - С:
- 9
- См. также:
getAllModuleElements
default Set<? extends ModuleElement> getAllModuleElements()
- Примечание API:
- Когда среда включает модули, могут возвращаться как именованные модули, так и безымянные модули.
- Требования к реализации:
- По умолчанию этот метод возвращает пустое множество.
- Возвращает:
- известные элементы модулей или пустое множество, если модулей нет
- С:
- 9
- См. также:
getElementValuesWithDefaults
Map<? extends ExecutableElement, ? extends AnnotationValue> getElementValuesWithDefaults(AnnotationMirror a)
- Параметры:
-
a- аннотация для проверки - Возвращает:
- значения элементов аннотации, включая значения по умолчанию
- См. также:
getDocComment
String getDocComment(Element e)
Документационный комментарий элемента — это особый вид комментария, который непосредственно предшествует элементу, игнорируя пробелы, аннотации и любые другие комментарии, которые сами по себе не являются документационными комментариями.
Существуют два типа документационных комментариев, либо основанные на традиционных комментариях, либо основанные на серии комментариев в конце строки. Для обоих типов возвращаемый текст документационного комментария представляет собой обработанный вид комментария, как он отображается в исходном коде, как описано ниже.
Традиционный документационный комментарий — это традиционный комментарий, начинающийся с "/**", и заканчивающийся отдельным "*/". (Поэтому такой комментарий содержит как минимум три "*" символа.) Строки такого комментария обрабатываются следующим образом:
- Ведущие "
/**" удаляются, как и любые непосредственно следующие пробелы в этой строке. Если все символы строки удалены, то она не вносит вклад в возвращаемый комментарий. - Для последующих строк документационного комментария, начинающихся после начального "
/**", если строки начинаются с нуля или более символов пробела, за которыми следует один или более символов "*", эти ведущие символы пробела отбрасываются, как и любые последовательные "*" символы, появляющиеся после пробелов или в начале строки. В противном случае, если строка не имеет префикса описанной формы, вся строка сохраняется. - Конечные "
*/" удаляются. Строка с конечным "*/" также подвергается удалению ведущих пробелов и символов "*", как описано выше. - Обработанные строки затем объединяются вместе, разделенные символами новой строки ("
\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 Форма бинарного представления
- См. также:
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:
getOutermostTypeElement
default TypeElement getOutermostTypeElement(Element e)
null. Модули и пакеты не имеют содержащего элемента типа, и поэтому для этих типов элементов возвращается null. Класс или интерфейс верхнего уровня — это его собственный внешний элемент типа.- Implementation Requirements:
- Реализация по умолчанию этого метода сначала проверяет тип аргумента. Для элементов типа
PACKAGE,MODULEиOTHERвозвращаетсяnull. Для элементов других типов элемент проверяется на предмет того, является ли он классом или интерфейсом верхнего уровня. Если да, возвращается этот элемент; в противном случае выполняется цепочка внешних элементов, пока не будет найден класс или интерфейс верхнего уровня. Возвращается элемент для найденного класса или интерфейса верхнего уровня. - Parameters:
-
e- проверяемый элемент - Returns:
- внешний элемент типа, в котором содержится элемент, если такой элемент существует; в противном случае возвращает
null - Since:
- 18
- See Also:
getAllAnnotationMirrors
List<? extends AnnotationMirror> getAllAnnotationMirrors(Element e)
Обратите внимание, что все аннотации, возвращаемые этим методом, являются аннотациями объявления.
- Parameters:
-
e- проверяемый элемент - Returns:
- все аннотации элемента
- See Also:
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)
В простейшем и наиболее типичном использовании, значение параметра 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:
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
© 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