Интерфейс AnnotationValueVisitor P>
- Параметры типа:
-
R- тип возвращаемого значения методов этого посетителя -
P- тип дополнительного параметра методов этого посетителя.
- Все известные реализующие классы:
-
AbstractAnnotationValueVisitor14,AbstractAnnotationValueVisitor6,AbstractAnnotationValueVisitor7,AbstractAnnotationValueVisitor8,AbstractAnnotationValueVisitor9,SimpleAnnotationValueVisitor14,SimpleAnnotationValueVisitor6,SimpleAnnotationValueVisitor7,SimpleAnnotationValueVisitor8,SimpleAnnotationValueVisitor9
public interface AnnotationValueVisitor<R,P>
boolean и значений int. Классы, реализующие этот интерфейс, используются для работы со значением, когда тип этого значения неизвестен на этапе компиляции. Когда посетитель передаётся методу accept значения, вызывается соответствующий метод visitXyz, применимый к этому значению. Классы, реализующие этот интерфейс, могут или не могут выбрасывать NullPointerException если дополнительный параметр p имеет значение null; см. документацию реализующего класса для получения подробностей.
- Примечание API:
-
ВНИМАНИЕ: Возможна добавление методов в этот интерфейс для поддержки новых, в настоящее время неизвестных, структур языка, добавленных в будущие версии языка программирования Java. Такие добавления уже произошли в другом интерфейсе посетителя в этом пакете для поддержки функций языка, добавленных после введения этого API. Классы-посетители, непосредственно реализующие этот интерфейс, могут быть несовместимы с будущими версиями платформы. Чтобы избежать этой несовместимости, реализации посетителей рекомендуют вместо этого расширять соответствующий абстрактный класс посетителя, реализующий этот интерфейс. Однако API, как правило, должен использовать этот интерфейс посетителя в качестве типа для параметров, типов возвращаемых значений и т. д., а не один из абстрактных классов.
Ожидается добавление методов для поддержки новых конструкций языка в качестве методов по умолчанию для обеспечения сильной совместимости, как это сделано для
visitModuleвElementVisitor. Реализации методов по умолчанию в этом интерфейсе, в свою очередь, вызовутvisitUnknown, поведение, которое будет переопределено в конкретных посетителях, поддерживающих версию источника с новой конструкцией языка.В пакете util есть несколько семейств классов, реализующих этот интерфейс посетителя. Семьи следуют шаблону именования в стиле
FooVisitorN, где N указывает версию исходного кода, для которой подходит посетитель. В частности,FooVisitorN должен обрабатывать все конструкции языка, присутствующие в версии исходного кода N. Если в версии N + 1 (или последующих версиях) новых конструкций языка нет,FooVisitorN может также обрабатывать эту более позднюю версию исходного кода; в этом случае аннотацияSupportedSourceVersionв классеFooVisitorN укажет более позднюю версию. При посещении значения аннотации, представляющего конструкцию языка, введенную после версии исходного кода N,FooVisitorN выброситUnknownAnnotationValueException, если это поведение не будет переопределено.При выборе члена семейства посетителей для наследования, наследование последнего члена увеличивает диапазон обрабатываемых версий исходного кода. При выборе семейства посетителей для наследования следует учитывать их встроенные возможности:
-
AbstractAnnotationValueVisitorы: Скелетные реализации посетителя. -
SimpleAnnotationValueVisitorы: Поддержка действий по умолчанию и значения возвращаемого значения по умолчанию.
-
- С момента:
- 1.6
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
default R |
visit |
Удобный метод, эквивалентный visit(av, null). |
R |
visit |
Посещает значение аннотации. |
R |
visitAnnotation |
Посещает значение аннотации в аннотации. |
R |
visitArray |
Посещает значение массива в аннотации. |
R |
visitBoolean |
Посещает значение boolean в аннотации. |
R |
visitByte |
Посещает значение byte в аннотации. |
R |
visitChar |
Посещает значение char в аннотации. |
R |
visitDouble |
Посещает значение double в аннотации. |
R |
visitEnumConstant |
Посещает значение enum в аннотации. |
R |
visitFloat |
Посещает значение float в аннотации. |
R |
visitInt |
Посещает значение int в аннотации. |
R |
visitLong |
Посещает значение long в аннотации. |
R |
visitShort |
Посещает значение short в аннотации. |
R |
visitString |
Посещает строковое значение в аннотации. |
R |
visitType |
Посещает значение типа в аннотации. |
R |
visitUnknown |
Посещает значение неизвестного типа аннотации. |
Подробное описание методов
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, 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/element/AnnotationValueVisitor.html