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

Параметры типа:
R — тип возвращаемого значения методов этого посетителя. Используйте Void для посетителей, которым не нужно возвращать результаты.
P — тип дополнительного параметра методов этого посетителя. Используйте Void для посетителей, которым не нужен дополнительный параметр.
Все известные реализующие классы:
AbstractTypeVisitor6, AbstractTypeVisitor7, AbstractTypeVisitor8, AbstractTypeVisitor9, SimpleTypeVisitor6, SimpleTypeVisitor7, SimpleTypeVisitor8, SimpleTypeVisitor9, TypeKindVisitor6, TypeKindVisitor7, TypeKindVisitor8, TypeKindVisitor9
public interface TypeVisitor<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​(TypeMirror t)

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

Rvisit​(TypeMirror t, P p)

Посещает тип.

RvisitArray​(ArrayType t, P p)

Посещает массив типов.

RvisitDeclared​(DeclaredType t, P p)

Посещает тип объявленного типа.

RvisitError​(ErrorType t, P p)

Посещает тип ошибки.

RvisitExecutable​(ExecutableType t, P p)

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

RvisitIntersection​(IntersectionType t, P p)

Посещает пересекающийся тип.

RvisitNoType​(NoType t, P p)

Посещает экземпляр NoType.

RvisitNull​(NullType t, P p)

Посещает тип null.

RvisitPrimitive​(PrimitiveType t, P p)

Посещает примитивный тип.

RvisitTypeVariable​(TypeVariable t, P p)

Посещает переменную типа.

RvisitUnion​(UnionType t, P p)

Посещает объединение типов.

RvisitUnknown​(TypeMirror t, P p)

Посещает неизвестный тип.

RvisitWildcard​(WildcardType t, P p)

Посещает тип с подстановкой.

Методы

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)

Посещает тип null.

Параметры:
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, 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/type/TypeVisitor.html

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