Интерфейс AnnotationValueVisitor<R, P>
- Параметры типа:
R- тип возвращаемого значения методов этого посетителяP- тип дополнительного параметра методов этого посетителя.
- Все известные реализующие классы:
AbstractAnnotationValueVisitor14, AbstractAnnotationValueVisitor6, AbstractAnnotationValueVisitor7, AbstractAnnotationValueVisitor8, AbstractAnnotationValueVisitor9, AbstractAnnotationValueVisitorPreviewPREVIEW, SimpleAnnotationValueVisitor14, SimpleAnnotationValueVisitor6, SimpleAnnotationValueVisitor7, SimpleAnnotationValueVisitor8, SimpleAnnotationValueVisitor9, SimpleAnnotationValueVisitorPreviewPREVIEW
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, 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://docs.oracle.com/en/java/javase/25/docs/api/java.compiler/javax/lang/model/element/AnnotationValueVisitor.html