Интерфейс ElementVisitor<R,​P>

Параметры типа:
R — тип возвращаемого значения методов этого посетителя. Используйте Void для посетителей, которым не нужно возвращать результаты.
P — тип дополнительного параметра методов этого посетителя. Используйте Void для посетителей, которым не нужен дополнительный параметр.
Все известные реализующие классы:
AbstractElementVisitor6, AbstractElementVisitor7, AbstractElementVisitor8, AbstractElementVisitor9, ElementKindVisitor6, ElementKindVisitor7, ElementKindVisitor8, ElementKindVisitor9, ElementScanner6, ElementScanner7, ElementScanner8, ElementScanner9, SimpleElementVisitor6, SimpleElementVisitor7, SimpleElementVisitor8, SimpleElementVisitor9
public interface ElementVisitor<R,P>

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

Классы, реализующие этот интерфейс, могут или не могут выбрасывать исключение NullPointerException, если дополнительный параметр p имеет значение null; см. документацию реализующего класса для подробностей.

ПРЕДУПРЕЖДЕНИЕ: Возможно, в этот интерфейс будут добавлены методы для поддержки новых, в настоящее время неизвестных, структур языка, добавленных в будущие версии языка программирования Java™. Поэтому классы-посетители, напрямую реализующие этот интерфейс, могут быть несовместимы с будущими версиями платформы. Чтобы избежать этой несовместимости, реализация посетителей должна расширять соответствующий абстрактный класс-посетитель, реализующий этот интерфейс. Однако API обычно должен использовать этот интерфейс посетителя в качестве типа для параметров, типа возвращаемого значения и т. д., а не один из абстрактных классов.

Обратите внимание, что методы для поддержки новых конструкций языка могут быть добавлены совместимым образом, если они будут добавлены в качестве методов по умолчанию. Однако методы по умолчанию доступны только в Java SE 8 и более поздних версиях, а пакеты javax.lang.model.* в Java SE 8 должны были также работать в Java SE 7. Поэтому методы по умолчанию не использовались при расширении javax.lang.model.* для охвата функций языка Java SE 8. Однако методы по умолчанию используются в последующих пересмотрах пакетов javax.lang.model.*, которые требуются только для работы на платформах Java SE 8 и более поздних версий.

С тех пор:
1.6

Методы

Модификатор и типМетодОписание
default Rvisit​(Element e)

Метод-удобство, эквивалентный visit(e, null).

Rvisit​(Element e, P p)

Посещает элемент.

RvisitExecutable​(ExecutableElement e, P p)

Посещает исполняемый элемент.

default RvisitModule​(ModuleElement e, P p)

Посещает элемент модуля.

RvisitPackage​(PackageElement e, P p)

Посещает элемент пакета.

RvisitType​(TypeElement e, P p)

Посещает элемент типа.

RvisitTypeParameter​(TypeParameterElement e, P p)

Посещает элемент параметра типа.

RvisitUnknown​(Element e, P p)

Посещает элемент неизвестного типа.

RvisitVariable​(VariableElement e, P p)

Посещает элемент переменной.

Методы

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

© 1993, 2020, 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/11/docs/api/java.compiler/javax/lang/model/element/ElementVisitor.html

Spec-Zone .ru
спецификации, руководства, описания, API