Интерфейс ClassBuilder
- Все суперинтерфейсы:
ClassFileBuilder<ClassElement, ClassBuilder>, Consumer<ClassElement>
public sealed interface ClassBuilder extends ClassFileBuilder<ClassElement, ClassBuilder>
class. ClassFile предоставляет различные методы build, принимающие обработчики для настройки такого построителя; для базового использования достаточно ClassFile.build(ClassDesc, Consumer), а ClassFile.build(ClassEntry, ConstantPoolBuilder, Consumer) позволяет осуществлять точный контроль над пулом констант. Общие рекомендации и предупреждения об использовании построителей для структур в формате файлов class см. в разделе ClassFileBuilder.
- Начиная с:
- 24
- См. также:
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
ClassBuilder |
transformField |
Добавляет поле, преобразуя поле из другого класса. |
ClassBuilder |
transformMethod |
Добавляет метод, преобразуя метод из другого класса. |
default ClassBuilder |
withField |
Добавляет поле, задавая только флаги доступа. |
ClassBuilder |
withField |
Добавляет поле. |
default ClassBuilder |
withField |
Добавляет поле, задавая только флаги доступа. |
default ClassBuilder |
withField |
Добавляет поле. |
default ClassBuilder |
withFlags |
Задает флаги доступа этого класса. |
default ClassBuilder |
withFlags |
Задает флаги доступа этого класса. |
default ClassBuilder |
withInterfaces |
Задает интерфейсы этого класса. |
default ClassBuilder |
withInterfaces |
Задает интерфейсы этого класса. |
default ClassBuilder |
withInterfaceSymbols |
Задает интерфейсы этого класса. |
default ClassBuilder |
withInterfaceSymbols |
Задает интерфейсы этого класса. |
ClassBuilder |
withMethod |
Добавляет метод. |
default ClassBuilder |
withMethod |
Добавляет метод. |
default ClassBuilder |
withMethodBody |
Добавляет метод, задавая только флаги доступа и CodeModel. |
default ClassBuilder |
withMethodBody |
Добавляет метод, задавая только флаги доступа и CodeModel. |
default ClassBuilder |
withSuperclass |
Задает суперкласс этого класса. |
default ClassBuilder |
withSuperclass |
Задает суперкласс этого класса. |
default ClassBuilder |
withVersion |
Задает версию этого класса. |
Методы, объявленные в интерфейсе ClassFileBuilder
accept, constantPool, transform, with
Подробное описание методов
withVersion
default ClassBuilder withVersion(int major, int minor)
- Параметры:
-
major— номер старшей версии -
minor— номер младшей версии - Возвращает:
- этот построитель
- См. также:
withFlags
default ClassBuilder withFlags(int flags)
- Параметры:
-
flags— флаги доступа в виде битовой маски - Возвращает:
- этот построитель
- См. также:
withFlags
default ClassBuilder withFlags(AccessFlag... flags)
- Параметры:
-
flags— флаги доступа в виде перечислений флагов - Возвращает:
- этот построитель
- Вызывает исключение:
-
IllegalArgumentException— если какой-либо флаг нельзя применить в местеAccessFlag.Location.CLASS - См. также:
withSuperclass
default ClassBuilder withSuperclass(ClassEntry superclassEntry)
- Параметры:
-
superclassEntry— суперкласс - Возвращает:
- этот построитель
- См. также:
withSuperclass
default ClassBuilder withSuperclass(ClassDesc desc)
- Параметры:
-
desc— суперкласс - Возвращает:
- этот построитель
- Вызывает исключение:
-
IllegalArgumentException— еслиdescпредставляет примитивный тип - См. также:
withInterfaces
default ClassBuilder withInterfaces(List<ClassEntry> interfaces)
- Параметры:
-
interfaces— интерфейсы - Возвращает:
- этот построитель
- См. также:
withInterfaces
default ClassBuilder withInterfaces(ClassEntry... interfaces)
- Параметры:
-
interfaces— интерфейсы - Возвращает:
- этот построитель
- См. также:
withInterfaceSymbols
default ClassBuilder withInterfaceSymbols(List<ClassDesc> interfaces)
- Параметры:
-
interfaces— интерфейсы - Возвращает:
- этот построитель
- Вызывает исключение:
-
IllegalArgumentException— если какой-либо элементinterfacesявляется примитивным типом - См. также:
withInterfaceSymbols
default ClassBuilder withInterfaceSymbols(ClassDesc... interfaces)
- Параметры:
-
interfaces— интерфейсы - Возвращает:
- этот построитель
- Вызывает исключение:
-
IllegalArgumentException— если какой-либо элементinterfacesявляется примитивным типом - См. также:
withField
ClassBuilder withField(Utf8Entry name, Utf8Entry descriptor, Consumer<? super FieldBuilder> handler)
- Параметры:
-
name— имя поля -
descriptor— строка дескриптора поля -
handler— обработчик для задания содержимого поля - Возвращает:
- этот построитель
- См. также:
withField
default ClassBuilder withField(Utf8Entry name, Utf8Entry descriptor, int flags)
- Параметры:
-
name— имя поля -
descriptor— строка дескриптора поля -
flags— флаги доступа для этого поля в виде битовой маски - Возвращает:
- этот построитель
- См. также:
withField
default ClassBuilder withField(String name, ClassDesc descriptor, Consumer<? super FieldBuilder> handler)
- Параметры:
-
name— имя поля -
descriptor— символьный дескриптор поля -
handler— обработчик для задания содержимого поля - Возвращает:
- этот построитель
- См. также:
withField
default ClassBuilder withField(String name, ClassDesc descriptor, int flags)
- Параметры:
-
name— имя поля -
descriptor— символьный дескриптор поля -
flags— флаги доступа для этого поля в виде битовой маски - Возвращает:
- этот построитель
- См. также:
transformField
ClassBuilder transformField(FieldModel field, FieldTransform transform)
Этот метод действует так, как если бы выполнялось следующее:
- Параметры:
-
field— поле, которое нужно преобразовать -
transform— преобразование, применяемое к полю - Возвращает:
- этот построитель
- См. также:
withMethod
ClassBuilder withMethod(Utf8Entry name, Utf8Entry descriptor, int methodFlags, Consumer<? super MethodBuilder> handler)
ACC_STATIC впоследствии не может быть изменен с помощью handler и должен задаваться через methodFlags.- Параметры:
-
name— имя метода -
descriptor— дескриптор метода -
methodFlags— флаги доступа в виде битовой маски; битACC_STATICобязательно должен быть установлен -
handler— обработчик для задания содержимого метода - Возвращает:
- этот построитель
- См. также:
withMethodBody
default ClassBuilder withMethodBody(Utf8Entry name, Utf8Entry descriptor, int methodFlags, Consumer<? super CodeBuilder> handler)
CodeModel. Бит флага ACC_STATIC впоследствии не может быть изменен с помощью handler и должен задаваться через methodFlags. Этот метод действует так, как если бы выполнялось следующее:
withMethod(name, descriptor, methodFlags, mb -> mb.withCode(handler))
- Параметры:
-
name— имя метода -
descriptor— дескриптор метода -
methodFlags— флаги доступа в виде битовой маски; битACC_STATICобязательно должен быть установлен -
handler— обработчик для задания содержимого тела метода - Возвращает:
- этот построитель
- См. также:
withMethod
default ClassBuilder withMethod(String name, MethodTypeDesc descriptor, int methodFlags, Consumer<? super MethodBuilder> handler)
ACC_STATIC впоследствии не может быть изменен с помощью handler и должен задаваться через methodFlags.- Параметры:
-
name— имя метода -
descriptor— дескриптор метода -
methodFlags— флаги доступа в виде битовой маски; битACC_STATICобязательно должен быть установлен -
handler— обработчик для задания содержимого метода - Возвращает:
- этот построитель
- См. также:
withMethodBody
default ClassBuilder withMethodBody(String name, MethodTypeDesc descriptor, int methodFlags, Consumer<? super CodeBuilder> handler)
CodeModel. Бит флага ACC_STATIC впоследствии не может быть изменен с помощью handler и должен задаваться через methodFlags. Этот метод действует так, как если бы выполнялось следующее:
withMethod(name, descriptor, methodFlags, mb -> mb.withCode(handler))
- Параметры:
-
name— имя метода -
descriptor— дескриптор метода -
methodFlags— флаги доступа в виде битовой маски; битACC_STATICобязательно должен быть установлен -
handler— обработчик для задания содержимого тела метода - Возвращает:
- этот построитель
- См. также:
transformMethod
ClassBuilder transformMethod(MethodModel method, MethodTransform transform)
ACC_STATIC исходного метода. Этот метод действует так, как если бы выполнялось следующее:
withMethod(method.methodName(), method.methodType(), method.flags().flagMask(),
mb -> mb.transform(method, transform))
- Параметры:
-
method— метод, который нужно преобразовать -
transform— преобразование, применяемое к методу - Возвращает:
- этот построитель
- См. также:
© 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/ClassBuilder.html