Интерфейс MethodTransform
- Все суперинтерфейсы:
ClassFileTransform<MethodTransform, MethodElement, MethodBuilder>
- Функциональный интерфейс:
- Это функциональный интерфейс, поэтому его можно использовать в качестве целевого типа для лямбда-выражения или ссылки на метод.
@FunctionalInterface public non-sealed interface MethodTransform extends ClassFileTransform<MethodTransform, MethodElement, MethodBuilder>
MethodElement. Общие рекомендации и предупреждения по использованию преобразований для структур в формате файлов class приведены в разделе ClassFileTransform.
Преобразование метода можно преобразовать в преобразование класса с помощью ClassTransform.transformingMethods(MethodTransform). При этом преобразуются только элементы MethodModel среди членов класса, а все остальные элементы передаются построителям.
- Начиная с версии:
- 24
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final MethodTransform |
ACCEPT_ALL |
Преобразование метода, передающее все элементы построителю. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
default MethodTransform |
andThen |
Объединяет это преобразование с другим; элементы, переданные построителю этого преобразования, становятся входными данными для следующего преобразования. |
static MethodTransform |
dropping |
Создает преобразование метода, которое передает каждый элемент построителю, за исключением тех, для которых заданный Predicate возвращает true. |
static MethodTransform |
endHandler |
Создает преобразование метода, которое передает каждый элемент построителю и вызывает указанную функцию по завершении преобразования. |
static MethodTransform |
ofStateful |
Создает преобразование метода с состоянием из Supplier. |
static MethodTransform |
transformingCode |
Создает преобразование метода, преобразующее элементы CodeModel с помощью заданного преобразования кода и передающее все остальные элементы построителю. |
Методы, объявленные в интерфейсе ClassFileTransform
accept, atEnd, atStart
Подробное описание полей
ACCEPT_ALL
static final MethodTransform ACCEPT_ALL
Подробное описание методов
ofStateful
static MethodTransform ofStateful(Supplier<MethodTransform> supplier)
Supplier. Поставщик будет вызываться для каждого преобразования.- Параметры:
-
supplier—Supplier, создающий новый объект преобразования для каждого обхода - Возвращает:
- преобразование метода с состоянием
endHandler
static MethodTransform endHandler(Consumer<MethodBuilder> finisher)
- Параметры:
-
finisher— функция, вызываемая по завершении преобразования - Возвращает:
- преобразование метода
dropping
static MethodTransform dropping(Predicate<MethodElement> filter)
Predicate возвращает true.- Параметры:
-
filter— предикат, определяющий, какие элементы следует отбросить - Возвращает:
- преобразование метода
transformingCode
static MethodTransform transformingCode(CodeTransform xform)
CodeModel с помощью заданного преобразования кода и передающее все остальные элементы построителю.- Параметры:
-
xform— преобразование метода - Возвращает:
- преобразование класса
andThen
default MethodTransform andThen(MethodTransform t)
ClassFileTransformЭтот метод реализован API файлов классов. Обычно у пользователей нет достаточного доступа к функциям API файлов классов, чтобы корректно переопределить этот метод для общих последующих преобразований.
- Определен в:
-
andThenв интерфейсеClassFileTransform<MethodTransform, MethodElement, MethodBuilder> - Требования к реализации:
- Реализация по умолчанию возвращает это преобразование метода, объединенное с другим преобразованием метода из аргумента. Для объединения двух преобразований требуется промежуточный построитель, который служит целевым построителем для этого преобразования и одновременно источником элементов для последующего преобразования.
- Параметры:
-
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/MethodTransform.html