# Interface FieldBuilder

All Superinterfaces:
  `ClassFileBuilder<FieldElement, FieldBuilder>, Consumer<FieldElement>`

public sealed interface FieldBuilder extends ClassFileBuilder<FieldElement, FieldBuilder>
A builder for fields. The main way to obtain a field builder is via `ClassBuilder.withField(String, ClassDesc, Consumer)`. The access flag overload is useful if no attribute needs to be configured, skipping the handler.

Refer to `ClassFileBuilder` for general guidance and caution around the use of builders for structures in the `class` file format.

Since:
  24
See Also:
  - `ClassBuilder.withField(String, ClassDesc, Consumer)`
  - `FieldModel`
  - `FieldTransform`

## Method Summary

Modifier and Type
Method
Description
`default FieldBuilder`
`withFlags(int flags)`
Sets the field access flags.
`default FieldBuilder`
`withFlags(AccessFlag... flags)`
Sets the field access flags.

### Methods declared in interface ClassFileBuilder

`accept, constantPool, transform, with`
Modifier and Type
Method
Description
`default void`
`accept(FieldElement e)`
Integrates the member element into the structure being built.
`ConstantPoolBuilder`
`constantPool()`
Returns the constant pool builder associated with this builder.
`default FieldBuilder`
`transform(CompoundElement<FieldElement> model, ClassFileTransform<?, FieldElement, FieldBuilder> transform)`
Applies a transform to a compound structure, directing results to this builder.
`FieldBuilder`
`with(FieldElement e)`
Integrates the member element into the structure being built.

### Methods declared in interface Consumer

`andThen`
Modifier and Type
Method
Description
`default Consumer<FieldElement>`
`andThen(Consumer<? super FieldElement> after)`
Returns a composed `Consumer` that performs, in sequence, this operation followed by the `after` operation.

## Method Details

### withFlags

default FieldBuilder withFlags(int flags)
Sets the field access flags.

Parameters:
  `flags` - the access flags, as a bit mask
Returns:
  this builder
Throws:
  `IllegalArgumentException` - if `flags` is not `u2`
See Also:
  - `AccessFlags`
  - `AccessFlag.Location.FIELD`
  - `ClassBuilder.withField(String, ClassDesc, int)`

### withFlags

default FieldBuilder withFlags(AccessFlag... flags)
Sets the field access flags.

Parameters:
  `flags` - the access flags, as a bit mask
Returns:
  this builder
Throws:
  `IllegalArgumentException` - if any flag cannot be applied to the `AccessFlag.Location.FIELD` location
See Also:
  - `AccessFlags`
  - `AccessFlag.Location.FIELD`
  - `ClassBuilder.withField(String, ClassDesc, int)`