Spec-Zone.ru › OpenJDK 27

Интерфейс CodeTransform

Все суперинтерфейсы:
ClassFileTransform<CodeTransform, CodeElement, CodeBuilder>
Функциональный интерфейс:
Это функциональный интерфейс, поэтому его можно использовать в качестве цели присваивания для лямбда-выражения или ссылки на метод.
@FunctionalInterface public non-sealed interface CodeTransform extends ClassFileTransform<CodeTransform, CodeElement, CodeBuilder>
Преобразование потока объектов CodeElement. Поток может поступать из CodeModel или от обработчика для CodeBuilder, как в случае с CodeBuilder.transforming(CodeTransform, Consumer).

Общие рекомендации и предостережения относительно использования преобразований структур в формате файла class см. в разделе ClassFileTransform.

Преобразование кода можно применить к методу или классу с помощью MethodTransform.transformingCode(CodeTransform) и ClassTransform.transformingMethodBodies(CodeTransform). При этом преобразуются только объекты CodeModel внутри этих структур, а все остальные элементы передаются построителям.

Начиная с версии:
24
См. также:
  • CodeModel
  • MethodBuilder.transformCode(CodeModel, CodeTransform)
  • CodeBuilder.transforming(CodeTransform, Consumer)

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

Модификатор и тип Поле Описание
static final CodeTransform ACCEPT_ALL
Преобразование кода, передающее все элементы построителю.

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

Модификатор и тип Метод Описание
default CodeTransform andThen(CodeTransform t)
Связывает это преобразование с другим; элементы, передаваемые построителю этого преобразования, становятся входными данными для следующего преобразования.
static CodeTransform endHandler(Consumer<CodeBuilder> finisher)
Создает преобразование кода, передающее каждый элемент построителю и вызывающее указанную функцию после завершения преобразования.
static CodeTransform ofStateful(Supplier<CodeTransform> supplier)
Создает изменяемое состояние преобразования кода из Supplier.

Методы, объявленные в интерфейсе ClassFileTransform

accept, atEnd, atStart
Модификатор и тип Метод Описание
void accept(CodeBuilder builder, CodeElement element)
Преобразует элемент, выполняя соответствующие действия с построителем.
default void atEnd(CodeBuilder builder)
Выполняет необходимые заключительные действия при преобразовании сущности файла классов.
default void atStart(CodeBuilder builder)
Выполняет необходимые предварительные действия при преобразовании сущности файла классов.

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

ACCEPT_ALL

static final CodeTransform ACCEPT_ALL
Преобразование кода, передающее все элементы построителю.

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

ofStateful

static CodeTransform ofStateful(Supplier<CodeTransform> supplier)
Создает изменяемое состояние преобразования кода из Supplier. Поставщик вызывается для каждого преобразования.
Параметры:
supplier — Supplier, создающий новый объект преобразования для каждого обхода
Возвращает:
преобразование кода с изменяемым состоянием

endHandler

static CodeTransform endHandler(Consumer<CodeBuilder> finisher)
Создает преобразование кода, передающее каждый элемент построителю и вызывающее указанную функцию после завершения преобразования.
Параметры:
finisher — функция, вызываемая после завершения преобразования
Возвращает:
преобразование кода

andThen

default CodeTransform andThen(CodeTransform t)
Описание скопировано из интерфейса: ClassFileTransform
Связывает это преобразование с другим; элементы, передаваемые построителю этого преобразования, становятся входными данными для следующего преобразования.

Этот метод реализован API файлов классов. Обычно пользователи не имеют достаточного доступа к функциям API файлов классов, чтобы корректно переопределить этот метод для общих последующих преобразований.

Определено в:
andThen в интерфейсе ClassFileTransform<CodeTransform, CodeElement, CodeBuilder>
Требования к реализации:
Реализация по умолчанию возвращает это преобразование кода, связанное с другим преобразованием кода, переданным в качестве аргумента. Для связывания двух преобразований требуется использовать связанный построитель, который служит целевым построителем для этого преобразования и одновременно источником элементов для последующего преобразования.
Параметры:
t — последующее преобразование
Возвращает:
связанное преобразование

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, включая обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, 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.

Spec-Zone.ru

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