Интерфейс 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) позволяет тонко контролировать пул констант. Обратитесь к ClassFileBuilder для общей информации и предосторожностей при использовании построителей для структур в формате файла class.
- С:
- 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 |
Устанавливает версию этого класса. |
Методы, объявленные в интерфейсе java.lang.classfile.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.- Parameters:
-
name- имя метода -
descriptor- описание метода -
methodFlags- флаги доступа в виде битовой маски, с битомACC_STATICобязательно установленным -
handler- обработчик для задания содержимого метода - Returns:
- этот билдер
- See Also:
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))
- Parameters:
-
name- имя метода -
descriptor- описание метода -
methodFlags- флаги доступа в виде битовой маски, с битомACC_STATICобязательно установленным -
handler- обработчик для задания содержимого тела метода - Returns:
- этот билдер
- See Also:
transformMethod
ClassBuilder transformMethod(MethodModel method, MethodTransform transform)
ACC_STATIC исходного метода. Этот метод ведет себя так, как если бы:
withMethod(method.methodName(), method.methodType(), method.flags().flagMask(),
mb -> mb.transform(method, transform))
- Parameters:
-
method- преобразуемый метод -
transform- преобразование, которое нужно применить к методу - Returns:
- этот билдер
- See Also:
© 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/ClassBuilder.html