Интерфейс 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
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final CodeTransform |
ACCEPT_ALL |
Преобразование кода, передающее все элементы построителю. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
default CodeTransform |
andThen |
Связывает это преобразование с другим; элементы, передаваемые построителю этого преобразования, становятся входными данными для следующего преобразования. |
static CodeTransform |
endHandler |
Создаёт преобразование кода, передающее каждый элемент построителю и вызывающее указанную функцию по завершении преобразования. |
static CodeTransform |
ofStateful |
Создаёт изменяющее состояние преобразование кода из Supplier. |
Методы, объявленные в интерфейсе 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 Class-File. Обычно у пользователей нет достаточного доступа к функциям API Class-File, чтобы правильно переопределить этот метод для общих последующих преобразований.
- Определено в:
-
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://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/lang/classfile/CodeTransform.html