Интерфейс TypeVisitor<R, P>
- Параметры типа:
R- тип возвращаемого значения методами этого посетителя. ИспользуйтеVoidдля посетителей, которым не нужно возвращать результаты.P- тип дополнительного параметра методов этого посетителя. ИспользуйтеVoidдля посетителей, которым не нужен дополнительный параметр.
- Все известные реализующие классы:
-
AbstractTypeVisitor14,AbstractTypeVisitor6,AbstractTypeVisitor7,AbstractTypeVisitor8,AbstractTypeVisitor9,AbstractTypeVisitorPreviewPREVIEW,SimpleTypeVisitor14,SimpleTypeVisitor6,SimpleTypeVisitor7,SimpleTypeVisitor8,SimpleTypeVisitor9,SimpleTypeVisitorPreviewPREVIEW,TypeKindVisitor14,TypeKindVisitor6,TypeKindVisitor7,TypeKindVisitor8,TypeKindVisitor9,TypeKindVisitorPreviewPREVIEW
public interface TypeVisitor<R,P>
accept типа, вызывается наиболее подходящий метод visitXyz для этого типа. Классы, реализующие этот интерфейс, могут или не могут генерировать NullPointerException, если дополнительный параметр p имеет значение null; см. документацию реализующего класса для получения подробностей.
- Примечание API:
-
ПРЕДУПРЕЖДЕНИЕ: Возможно добавление методов в этот интерфейс для поддержки новых, в настоящее время неизвестных, структур языка, добавленных в будущие версии языка программирования Java. Такие дополнения уже были сделаны для поддержки языковых функций, добавленных после введения этого API. Классы-посетители, непосредственно реализующие этот интерфейс, могут быть несовместимы с будущими версиями платформы. Чтобы избежать этой несовместимости, реализации посетителей рекомендуется вместо этого расширить соответствующий абстрактный класс-посетитель, реализующий этот интерфейс. Однако API в целом должен использовать этот интерфейс посетителя в качестве типа для параметров, типов возвращаемых значений и т. д., а не один из абстрактных классов.
Ожидается, что методы для поддержки новых конструкций языка будут добавлены как методы по умолчанию для обеспечения сильной совместимости исходного кода. Реализации методов по умолчанию в свою очередь будут вызывать
visitUnknown, поведение, которое будет переопределено в конкретных посетителях, поддерживающих исходную версию с новой языковой конструкцией.В пакете util есть несколько семейств классов, реализующих этот интерфейс посетителя. Семейства следуют шаблону именования в стиле
FooVisitorN, где N указывает версию исходного кода, для которой подходит посетитель. В частности,FooVisitorN должен обрабатывать все языковые конструкции, присутствующие в версии исходного кода N. Если новых языковых конструкций не добавлено в версии N + 1 (или последующих версиях),FooVisitorN также может обрабатывать эту более позднюю версию исходного кода; в этом случае аннотацияSupportedSourceVersionна классеFooVisitorN укажет более позднюю версию. При посещении типа, представляющего языковую конструкцию, введённую после версии исходного кода N,FooVisitorN будет выбрасыватьUnknownTypeException, если это поведение не будет переопределено.При выборе подкласса члена семейства посетителей, наследование самого последнего члена увеличивает диапазон поддерживаемых версий исходного кода. При выборе семейства посетителей для наследования, рассмотрите их встроенные возможности:
-
AbstractTypeVisitorы: Скелетные реализации посетителей. -
SimpleTypeVisitorы: Поддержка действий по умолчанию и значения возвращаемого результата по умолчанию. -
TypeKindVisitorы: Методы посещения, предоставляемые на уровне каждого типа, так как некоторые категории типов могут иметь более одного типа.
-
- C:
- 1.6
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
default R |
visit |
Метод-утилита, эквивалентный visit(t, null). |
R |
visit |
Посещение типа. |
R |
visitArray |
Посещение типа массива. |
R |
visitDeclared |
Посещение объявленного типа. |
R |
visitError |
Посещение типа ошибки. |
R |
visitExecutable |
Посещение типа исполняемого кода. |
R |
visitIntersection |
Посещение типа пересечения. |
R |
visitNoType |
Посещение экземпляра NoType. |
R |
visitNull |
Посещение типа null. |
R |
visitPrimitive |
Посещение примитивного типа. |
R |
visitTypeVariable |
Посещение переменной типа. |
R |
visitUnion |
Посещение типа объединения. |
R |
visitUnknown |
Посещение типа неизвестного вида. |
R |
visitWildcard |
Посещение типа подстановки. |
Подробное описание методов
visit
R visit(TypeMirror t, P p)
- Параметры:
-
t- посещаемый тип -
p- параметр, заданный посетителем - Возвращает:
- результат, заданный посетителем
visit
default R visit(TypeMirror t)
visit(t, null).- Требования к реализации:
- По умолчанию реализация равна
visit(t, null). - Параметры:
-
t- элемент для посещения - Возвращает:
- результат, заданный посетителем
visitPrimitive
R visitPrimitive(PrimitiveType t, P p)
- Параметры:
-
t- посещаемый тип -
p- параметр, заданный посетителем - Возвращает:
- результат, заданный посетителем
visitNull
R visitNull(NullType t, P p)
- Параметры:
-
t- посещаемый тип -
p- параметр, заданный посетителем - Возвращает:
- результат, заданный посетителем
visitArray
R visitArray(ArrayType t, P p)
- Параметры:
-
t- посещаемый тип -
p- параметр, заданный посетителем - Возвращает:
- результат, заданный посетителем
visitDeclared
R visitDeclared(DeclaredType t, P p)
- Параметры:
-
t- посещаемый тип -
p- параметр, заданный посетителем - Возвращает:
- результат, заданный посетителем
visitError
R visitError(ErrorType t, P p)
- Параметры:
-
t- посещаемый тип -
p- параметр, заданный посетителем - Возвращает:
- результат, заданный посетителем
visitTypeVariable
R visitTypeVariable(TypeVariable t, P p)
- Параметры:
-
t- посещаемый тип -
p- параметр, заданный посетителем - Возвращает:
- результат, заданный посетителем
visitWildcard
R visitWildcard(WildcardType t, P p)
- Параметры:
-
t- посещаемый тип -
p- параметр, заданный посетителем - Возвращает:
- результат, заданный посетителем
visitExecutable
R visitExecutable(ExecutableType t, P p)
- Параметры:
-
t- посещаемый тип -
p- параметр, заданный посетителем - Возвращает:
- результат, заданный посетителем
visitNoType
R visitNoType(NoType t, P p)
NoType.- Параметры:
-
t- посещаемый тип -
p- параметр, заданный посетителем - Возвращает:
- результат, заданный посетителем
visitUnknown
R visitUnknown(TypeMirror t, P p)
TypeMirror добавляются новые типы.- Параметры:
-
t- посещаемый тип -
p- параметр, заданный посетителем - Возвращает:
- результат, заданный посетителем
- Выбрасывает:
-
UnknownTypeException- реализация посетителя может по желанию выбросить это исключение
visitUnion
R visitUnion(UnionType t, P p)
- Параметры:
-
t- посещаемый тип -
p- параметр, заданный посетителем - Возвращает:
- результат, заданный посетителем
- С тех пор:
- 1.7
visitIntersection
R visitIntersection(IntersectionType t, P p)
- Параметры:
-
t- посещаемый тип -
p- параметр, заданный посетителем - Возвращает:
- результат, заданный посетителем
- С тех пор:
- 1.8
© 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/type/TypeVisitor.html