Spec-Zone.ru › OpenJDK 25

Class ElementScanner6<R,P>

java.lang.Object
javax.lang.model.util.AbstractElementVisitor6<R,P>
javax.lang.model.util.ElementScanner6<R,P>
Параметры типа:
R - тип возвращаемого значения методов этого посетителя. Используйте Void для посетителей, которым не нужно возвращать результаты.
P - тип дополнительного параметра методов этого посетителя. Используйте Void для посетителей, которым не нужен дополнительный параметр.
Все реализуемые интерфейсы:
ElementVisitor<R,P>
Прямые известные подклассы:
ElementScanner7
@SupportedSourceVersion(RELEASE_6) public class ElementScanner6<R,P> extends AbstractElementVisitor6<R,P>
Посетитель для обхода элементов программы с поведением по умолчанию, соответствующим версии исходного кода RELEASE_6. Методы visitXyz этого класса обходят составляющие их элементы, вызывая scan для их вложенных элементов, параметров и т. д., как указано в спецификациях отдельных методов. Подкласс может управлять порядком посещения элементов, переопределяя методы visitXyz. Обратите внимание, что клиенты сканера могут получить желаемое поведение, вызывая v.scan(e, p), а не v.visit(e, p) для корневых объектов, представляющих интерес.

При переопределении метода visitXyz в подклассе новый метод может обеспечить обход вложенных элементов способом по умолчанию, вызвав super.visitXyz. Таким образом, конкретный посетитель может управлять порядком обхода составляющих элементов относительно дополнительной обработки; например, последовательный вызов super.visitXyz в начале переопределённых методов обеспечит обход в прямом порядке и т. д. Если составляющие элементы следует обходить в другом порядке, переопределённый метод visit должен вместо вызова super.visitXyz вызвать scan, передав элементы в желаемом порядке.

Примечание к API:
Методы этого класса можно переопределять при условии соблюдения их общего контракта.

ВНИМАНИЕ: В интерфейс ElementVisitor, реализуемый этим классом, в будущем могут быть добавлены методы для поддержки новых, пока неизвестных языковых конструкций, появившихся в будущих версиях языка программирования Java. Поэтому в будущем в этот класс могут быть добавлены методы, имена которых начинаются с "visit"; во избежание несовместимости классы, расширяющие этот класс, не должны объявлять методы экземпляра с именами, начинающимися с "visit".

При добавлении такого нового метода visit его реализация по умолчанию в этом классе будет прямо или косвенно вызывать метод visitUnknown. Также будет представлен новый класс посетителя-сканера элементов, соответствующий новому уровню языка; для рассматриваемого метода visit у этого посетителя будет другое поведение по умолчанию. При появлении нового посетителя некоторые части этого класса посетителя могут быть объявлены устаревшими, включая его конструкторы.

С момента:
1.6
См. также:
  • ElementScanner7
  • ElementScanner8
  • ElementScanner9
  • ElementScanner14

Краткое описание полей

Модификатор и тип Поле Описание
protected final R DEFAULT_VALUE
Указанное значение по умолчанию.

Краткое описание конструкторов

ElementScanner6()
ElementScanner6(R defaultValue)
Модификатор Конструктор Описание
protected
Устарел.
Выпуск 6 устарел; обновите код, используя посетителя для более новой версии.
protected
Устарел.
Выпуск 6 устарел; обновите код, используя посетителя для более новой версии.

Краткое описание методов

Модификатор и тип Метод Описание
final R scan(Iterable<? extends Element> iterable, P p)
Перебирает заданные элементы и вызывает scan(Element, P) для каждого из них.
final R scan(Element e)
Удобный метод, эквивалентный v.scan(e, null).
R scan(Element e, P p)
Обрабатывает элемент, вызывая e.accept(this, p); этот метод может быть переопределён подклассами.
R visitExecutable(ExecutableElement e, P p)
Посещает исполняемый элемент.
R visitPackage(PackageElement e, P p)
Посещает элемент пакета.
R visitRecordComponent(RecordComponentElement e, P p)
Посещает элемент компонента записи.
R visitType(TypeElement e, P p)
Посещает элемент типа.
R visitTypeParameter(TypeParameterElement e, P p)
Посещает элемент параметра типа.
R visitVariable(VariableElement e, P p)
Посещает элемент переменной.

Методы, объявленные в классе AbstractElementVisitor6

visit, visit, visitModule, visitUnknown

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание полей

DEFAULT_VALUE

protected final R DEFAULT_VALUE
Указанное значение по умолчанию.

Подробное описание конструкторов

ElementScanner6

@Deprecated(since="9") protected ElementScanner6()
Устарел.
Выпуск 6 устарел; обновите код, используя посетителя для более новой версии.
Конструктор для конкретных подклассов; использует null в качестве значения по умолчанию.

ElementScanner6

@Deprecated(since="9") protected ElementScanner6(R defaultValue)
Устарел.
Выпуск 6 устарел; обновите код, используя посетителя для более новой версии.
Конструктор для конкретных подклассов; использует аргумент в качестве значения по умолчанию.
Параметры:
defaultValue - значение по умолчанию

Подробное описание методов

scan

public final R scan(Iterable<? extends Element> iterable, P p)
Перебирает заданные элементы и вызывает scan(Element, P) для каждого из них. Возвращает результат последнего вызова scan или DEFAULT_VALUE для пустого итерируемого объекта.
Параметры:
iterable - элементы для обхода
p - дополнительный параметр
Возвращает:
результат обхода последнего элемента или DEFAULT_VALUE, если элементов нет

scan

public R scan(Element e, P p)
Обрабатывает элемент, вызывая e.accept(this, p); этот метод может быть переопределён подклассами.
Параметры:
e - элемент для обхода
p - параметр, заданный сканером
Возвращает:
результат посещения e.

scan

public final R scan(Element e)
Удобный метод, эквивалентный v.scan(e, null).
Параметры:
e - элемент для обхода
Возвращает:
результат обхода e.

visitPackage

public R visitPackage(PackageElement e, P p)
Посещает элемент пакета.
Требования к реализации:
Эта реализация обходит вложенные элементы.
Параметры:
e - посещаемый элемент
p - параметр, заданный посетителем
Возвращает:
результат обхода

visitType

public R visitType(TypeElement e, P p)
Посещает элемент типа.
Требования к реализации:
Эта реализация обходит вложенные элементы. Обратите внимание, что параметры типа не обходятся этой реализацией, поскольку параметры типа не считаются вложенными элементами типа.
Параметры:
e - посещаемый элемент
p - параметр, заданный посетителем
Возвращает:
результат обхода

visitVariable

public R visitVariable(VariableElement e, P p)
Посещает элемент переменной.
Требования к реализации:
Эта реализация обходит вложенные элементы, если только элемент не является RESOURCE_VARIABLE; в этом случае вызывается visitUnknown.
Параметры:
e - посещаемый элемент
p - параметр, заданный посетителем
Возвращает:
результат обхода

visitExecutable

public R visitExecutable(ExecutableElement e, P p)
Посещает исполняемый элемент.
Требования к реализации:
Эта реализация обходит параметры. Обратите внимание, что параметры типа этой реализацией не обходятся.
Параметры:
e - посещаемый элемент
p - параметр, заданный посетителем
Возвращает:
результат обхода

visitTypeParameter

public R visitTypeParameter(TypeParameterElement e, P p)
Посещает элемент параметра типа.
Требования к реализации:
Эта реализация обходит вложенные элементы.
Параметры:
e - посещаемый элемент
p - параметр, заданный посетителем
Возвращает:
результат обхода

visitRecordComponent

public R visitRecordComponent(RecordComponentElement e, P p)
Посещает элемент компонента записи.
Указано в:
visitRecordComponent в интерфейсе ElementVisitor<R,P>
Переопределяет:
visitRecordComponent в классе AbstractElementVisitor6<R,P>
Требования к реализации:
Эта реализация вызывает visitUnknown(e, p).
Параметры:
e - посещаемый элемент
p - параметр, заданный посетителем
Возвращает:
результат обхода
С момента:
14

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по 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/util/ElementScanner6.html

Spec-Zone.ru

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