Интерфейс TypeVisitor<R, P>
- Параметры типа:
-
R- тип возвращаемого значения методов этого посетителя. ИспользуйтеVoidдля посетителей, которым не нужно возвращать результаты. -
P- тип дополнительного параметра методов этого посетителя. ИспользуйтеVoidдля посетителей, которым не нужен дополнительный параметр.
- Все известные реализующие классы:
-
AbstractTypeVisitor14,AbstractTypeVisitor6,AbstractTypeVisitor7,AbstractTypeVisitor8,AbstractTypeVisitor9,SimpleTypeVisitor14,SimpleTypeVisitor6,SimpleTypeVisitor7,SimpleTypeVisitor8,SimpleTypeVisitor9,TypeKindVisitor14,TypeKindVisitor6,TypeKindVisitor7,TypeKindVisitor8,TypeKindVisitor9
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: Методы посещения, предоставляемые на уровне категории, так как некоторые категории типов могут иметь более одного вида.
-
- Since:
- 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, 2021, 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/17/docs/api/java.compiler/javax/lang/model/type/TypeVisitor.html