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