Interface ElementVisitor<R, P>
- Параметры типа:
R— тип возвращаемого значения методов этого посетителя. ИспользуйтеVoidдля посетителей, которым не нужно возвращать результаты.P— тип дополнительного параметра методов этого посетителя. ИспользуйтеVoidдля посетителей, которым не нужен дополнительный параметр.
- Все известные реализующие классы:
AbstractElementVisitor14, AbstractElementVisitor6, AbstractElementVisitor7, AbstractElementVisitor8, AbstractElementVisitor9, AbstractElementVisitorPreviewPREVIEW, ElementKindVisitor14, ElementKindVisitor6, ElementKindVisitor7, ElementKindVisitor8, ElementKindVisitor9, ElementKindVisitorPreviewPREVIEW, ElementScanner14, ElementScanner6, ElementScanner7, ElementScanner8, ElementScanner9, ElementScannerPreviewPREVIEW, SimpleElementVisitor14, SimpleElementVisitor6, SimpleElementVisitor7, SimpleElementVisitor8, SimpleElementVisitor9, SimpleElementVisitorPreviewPREVIEW
public interface ElementVisitor<R,P>
accept, вызывается наиболее подходящий для этого элемента метод visitXyz. Классы, реализующие этот интерфейс, могут выбрасывать или не выбрасывать NullPointerException, если дополнительный параметр p имеет значение null; подробности см. в документации реализующего класса.
- Примечание к API:
-
ПРЕДУПРЕЖДЕНИЕ: В этот интерфейс могут быть добавлены методы для поддержки новых, пока неизвестных языковых конструкций, которые появятся в будущих версиях языка программирования Java. Такие изменения уже вносились для поддержки языковых возможностей, добавленных после появления этого API. Классы посетителей, непосредственно реализующие этот интерфейс, могут быть несовместимы с будущими версиями платформы на уровне исходного кода. Чтобы избежать такой несовместимости, вместо этого рекомендуется расширять соответствующий абстрактный класс посетителя, реализующий этот интерфейс. Однако в API для параметров, возвращаемых значений и т. п. обычно следует использовать этот интерфейс посетителя, а не один из абстрактных классов.
Ожидается, что методы для поддержки новых языковых конструкций будут добавляться в виде методов по умолчанию, обеспечивающих высокую совместимость исходного кода, как это сделано для
visitModuleиvisitRecordComponent. Реализации методов по умолчанию, в свою очередь, вызываютvisitUnknown; это поведение будет переопределено в конкретных посетителях, поддерживающих версию исходного кода с новой языковой конструкцией.В пакете util есть несколько семейств классов, реализующих этот интерфейс посетителя. Семейства следуют шаблону именования вида
FooVisitorN, где N указывает версию исходного кода, для которой предназначен посетитель. В частности, ожидается, чтоFooVisitorN будет обрабатывать все языковые конструкции, присутствующие в версии исходного кода N. Если в версии N + 1 (или последующих выпусках) не добавлено новых языковых конструкций,FooVisitorN может также обрабатывать эту более позднюю версию исходного кода; в таком случае аннотацияSupportedSourceVersionклассаFooVisitorN будет указывать более позднюю версию. При посещении элемента, представляющего языковую конструкцию, введённую после версии исходного кода N,FooVisitorN выброситUnknownElementException, если это поведение не переопределено.При выборе подкласса из семейства посетителей расширение наиболее новой версии увеличивает диапазон поддерживаемых версий исходного кода. При выборе семейства посетителей для расширения учитывайте их встроенные возможности:
-
AbstractElementVisitor: каркасные реализации посетителей. -
SimpleElementVisitor: поддержка действий по умолчанию и возвращаемого значения по умолчанию. -
ElementKindVisitor: методы посещения для каждого вида элемента, поскольку некоторые категории элементов могут иметь несколько видов. -
ElementScanner: сканеры — это посетители, которые обходят элемент и связанные с ним вложенные элементы.
-
- Начиная с версии:
- 1.6
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
default R |
visit |
Вспомогательный метод, эквивалентный visit(e, null). |
R |
visit |
Посещает элемент. |
R |
visitExecutable |
Посещает исполняемый элемент. |
default R |
visitModule |
Посещает элемент-модуль. |
R |
visitPackage |
Посещает элемент-пакет. |
default R |
visitRecordComponent |
Посещает элемент компонента записи. |
R |
visitType |
Посещает элемент-типа. |
R |
visitTypeParameter |
Посещает элемент параметра типа. |
R |
visitUnknown |
Посещает элемент неизвестного вида. |
R |
visitVariable |
Посещает элемент-переменную. |
Подробное описание методов
visit
R visit(Element e, P p)
- Параметры:
-
e— элемент для посещения -
p— параметр, заданный посетителем - Возвращает:
- результат, заданный посетителем
visit
default R visit(Element e)
visit(e, null).- Требования к реализации:
- Реализация по умолчанию —
visit(e, null). - Параметры:
-
e— элемент для посещения - Возвращает:
- результат, заданный посетителем
visitPackage
R visitPackage(PackageElement e, P p)
- Параметры:
-
e— элемент для посещения -
p— параметр, заданный посетителем - Возвращает:
- результат, заданный посетителем
visitType
R visitType(TypeElement e, P p)
- Параметры:
-
e— элемент для посещения -
p— параметр, заданный посетителем - Возвращает:
- результат, заданный посетителем
visitVariable
R visitVariable(VariableElement e, P p)
- Параметры:
-
e— элемент для посещения -
p— параметр, заданный посетителем - Возвращает:
- результат, заданный посетителем
visitExecutable
R visitExecutable(ExecutableElement e, P p)
- Параметры:
-
e— элемент для посещения -
p— параметр, заданный посетителем - Возвращает:
- результат, заданный посетителем
visitTypeParameter
R visitTypeParameter(TypeParameterElement e, P p)
- Параметры:
-
e— элемент для посещения -
p— параметр, заданный посетителем - Возвращает:
- результат, заданный посетителем
visitUnknown
R visitUnknown(Element e, P p)
Element будут добавлены новые виды элементов.- Параметры:
-
e— элемент для посещения -
p— параметр, заданный посетителем - Возвращает:
- результат, заданный посетителем
- Выбрасывает:
-
UnknownElementException— реализация посетителя может по желанию выбросить это исключение
visitModule
default R visitModule(ModuleElement e, P p)
- Требования к реализации:
- Реализация по умолчанию посещает
ModuleElement, вызываяvisitUnknown(e, p). - Параметры:
-
e— элемент для посещения -
p— параметр, заданный посетителем - Возвращает:
- результат, заданный посетителем
- Начиная с версии:
- 9
visitRecordComponent
default R visitRecordComponent(RecordComponentElement e, P p)
- Требования к реализации:
- Реализация по умолчанию посещает
RecordComponentElement, вызываяvisitUnknown(e, p). - Параметры:
-
e— элемент для посещения -
p— параметр, заданный посетителем - Возвращает:
- результат, заданный посетителем
- Начиная с версии:
- 16
© 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/element/ElementVisitor.html