Интерфейс AnnotationValueVisitor<R,P>
- Параметры типа:
-
R- тип возвращаемого значения методов этого посетителя -
P- тип дополнительного параметра методов этого посетителя.
- Все известные реализующие классы:
-
AbstractAnnotationValueVisitor6,AbstractAnnotationValueVisitor7,AbstractAnnotationValueVisitor8,AbstractAnnotationValueVisitor9,SimpleAnnotationValueVisitor6,SimpleAnnotationValueVisitor7,SimpleAnnotationValueVisitor8,SimpleAnnotationValueVisitor9
public interface AnnotationValueVisitor<R,P>
Посетитель значений элементов типа аннотации, использующий вариант шаблона проектирования «посетитель». В отличие от стандартного посетителя, который обрабатывает запросы на основе конкретного типа члена иерархии типов, этот посетитель обрабатывает запросы на основе типа хранимых данных; нет отдельных подклассов для хранения, например, значений boolean по сравнению со значениями int. Классы, реализующие этот интерфейс, используются для обработки значения, когда тип этого значения неизвестен на этапе компиляции. Когда посетитель передаётся методу accept значения, вызывается соответствующий метод посетителя для этого значения.
Классы, реализующие этот интерфейс, могут или не могут выбрасывать исключение 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 R | visit(AnnotationValue av) | Удобный метод, эквивалентный |
R | visit(AnnotationValue av,
P p) | Посещение значения аннотации. |
R | visitAnnotation(AnnotationMirror a,
P p) | Посещение значения аннотации в аннотации. |
R | visitArray(List<? extends AnnotationValue> vals,
P p) | Посещение значения массива в аннотации. |
R | visitBoolean(boolean b,
P p) | Посещение значения |
R | visitByte(byte b,
P p) | Посещение значения |
R | visitChar(char c,
P p) | Посещение значения |
R | visitDouble(double d,
P p) | Посещение значения |
R | visitEnumConstant(VariableElement c,
P p) | Посещение значения |
R | visitFloat(float f,
P p) | Посещение значения |
R | visitInt(int i,
P p) | Посещение значения |
R | visitLong(long i,
P p) | Посещение значения |
R | visitShort(short s,
P p) | Посещение значения |
R | visitString(String s,
P p) | Посещение строкового значения в аннотации. |
R | visitType(TypeMirror t,
P p) | Посещение значения типа в аннотации. |
R | visitUnknown(AnnotationValue av,
P p) | Посещение значения неизвестного типа аннотации. |
Методы
visit
R visit(AnnotationValue av,
P p) Посещает значение аннотации.
- Параметры:
-
av- значение для посещения -
p- параметр, указанный посетителем - Возвращает:
- результат, указанный посетителем
visit
default R visit(AnnotationValue av)
Удобный метод, эквивалентный visit(av, null).
- Требования к реализации:
- По умолчанию реализация
visit(av, null). - Параметры:
-
av- значение для посещения - Возвращает:
- результат, указанный посетителем
visitBoolean
R visitBoolean(boolean b,
P p) Посещает значение boolean в аннотации.
- Параметры:
-
b- посещаемое значение -
p- параметр, указанный посетителем - Возвращает:
- результат посещения
visitByte
R visitByte(byte b,
P p) Посещает значение byte в аннотации.
- Параметры:
-
b- посещаемое значение -
p- параметр, указанный посетителем - Возвращает:
- результат посещения
visitChar
R visitChar(char c,
P p) Посещает значение char в аннотации.
- Параметры:
-
c- посещаемое значение -
p- параметр, указанный посетителем - Возвращает:
- результат посещения
visitDouble
R visitDouble(double d,
P p) Посещает значение double в аннотации.
- Параметры:
-
d- посещаемое значение -
p- параметр, указанный посетителем - Возвращает:
- результат посещения
visitFloat
R visitFloat(float f,
P p) Посещает значение float в аннотации.
- Параметры:
-
f- посещаемое значение -
p- параметр, указанный посетителем - Возвращает:
- результат посещения
visitInt
R visitInt(int i,
P p) Посещает значение int в аннотации.
- Параметры:
-
i- посещаемое значение -
p- параметр, указанный посетителем - Возвращает:
- результат посещения
visitLong
R visitLong(long i,
P p) Посещает значение long в аннотации.
- Параметры:
-
i- посещаемое значение -
p- параметр, указанный посетителем - Возвращает:
- результат посещения
visitShort
R visitShort(short s,
P p) Посещает значение short в аннотации.
- Параметры:
-
s- посещаемое значение -
p- параметр, указанный посетителем - Возвращает:
- результат посещения
visitString
R visitString(String s,
P p) Посещает строковое значение в аннотации.
- Параметры:
-
s- посещаемое значение -
p- параметр, указанный посетителем - Возвращает:
- результат посещения
visitType
R visitType(TypeMirror t,
P p) Посещает значение типа в аннотации.
- Параметры:
-
t- посещаемое значение -
p- параметр, указанный посетителем - Возвращает:
- результат посещения
visitEnumConstant
R visitEnumConstant(VariableElement c,
P p) Посещает значение enum в аннотации.
- Параметры:
-
c- посещаемое значение -
p- параметр, указанный посетителем - Возвращает:
- результат посещения
visitAnnotation
R visitAnnotation(AnnotationMirror a,
P p) Посещает значение аннотации в аннотации.
- Параметры:
-
a- посещаемое значение -
p- параметр, указанный посетителем - Возвращает:
- результат посещения
visitArray
R visitArray(List<? extends AnnotationValue> vals,
P p) Посещает значение массива в аннотации.
- Параметры:
-
vals- посещаемое значение -
p- параметр, указанный посетителем - Возвращает:
- результат посещения
visitUnknown
R visitUnknown(AnnotationValue av,
P p) Посещает значение аннотации неизвестного типа. Это может произойти, если язык эволюционирует и новые типы значений могут храниться в аннотации.
- Параметры:
-
av- посещаемое неизвестное значение -
p- параметр, указанный посетителем - Возвращает:
- результат посещения
- Исключения:
-
UnknownAnnotationValueException- реализация посетителя может по своему усмотрению вызвать это исключение
© 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/AnnotationValueVisitor.html