Spec-Zone.ru › OpenJDK 24

Интерфейс CodeTransform

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

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

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

С:
24
См. также:
  • CodeModel
  • MethodBuilder.transformCode(java.lang.classfile.CodeModel, java.lang.classfile.CodeTransform)
  • CodeBuilder.transforming(java.lang.classfile.CodeTransform, java.util.function.Consumer<java.lang.classfile.CodeBuilder>)

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

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

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

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

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

accept, atEnd, atStart

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

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 - преобразование вниз по потоку
Возвращает:
соединённое преобразование

© 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/lang/classfile/CodeTransform.html

Spec-Zone.ru

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