Интерфейс ElementVisitor P>
- Параметры типа:
-
R- тип возвращаемого значения методов этого посетителя. ИспользуйтеVoidдля посетителей, которым не нужно возвращать результаты. -
P- тип дополнительного параметра методов этого посетителя. ИспользуйтеVoidдля посетителей, которым не нужен дополнительный параметр.
- Все известные реализующие классы:
-
AbstractElementVisitor14,AbstractElementVisitor6,AbstractElementVisitor7,AbstractElementVisitor8,AbstractElementVisitor9,ElementKindVisitor14,ElementKindVisitor6,ElementKindVisitor7,ElementKindVisitor8,ElementKindVisitor9,ElementScanner14,ElementScanner6,ElementScanner7,ElementScanner8,ElementScanner9,SimpleElementVisitor14,SimpleElementVisitor6,SimpleElementVisitor7,SimpleElementVisitor8,SimpleElementVisitor9
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, 2023, 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/21/docs/api/java.compiler/javax/lang/model/element/ElementVisitor.html