Spec-Zone.ru › OpenJDK 25

Интерфейс 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(AnnotationValue av)
Вспомогательный метод, эквивалентный visit(av, null).
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)
Посещает значение boolean внутри аннотации.
R visitByte(byte b, P p)
Посещает значение byte внутри аннотации.
R visitChar(char c, P p)
Посещает значение char внутри аннотации.
R visitDouble(double d, P p)
Посещает значение double внутри аннотации.
R visitEnumConstant(VariableElement c, P p)
Посещает значение enum внутри аннотации.
R visitFloat(float f, P p)
Посещает значение float внутри аннотации.
R visitInt(int i, P p)
Посещает значение int внутри аннотации.
R visitLong(long i, P p)
Посещает значение long внутри аннотации.
R visitShort(short s, P p)
Посещает значение short внутри аннотации.
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 — реализация посетителя может при необходимости выбросить это исключение

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, которая содержит более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её дочерних компаний в США и других странах.
Авторское право © 1993, 2025, Oracle и/или её дочерние компании, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API