# Interface FieldModel

All Superinterfaces:
  `AttributedElement`, `ClassElement`, `ClassFileElement`, `CompoundElement<FieldElement>`, `Iterable<FieldElement>`

public sealed interface FieldModel extends CompoundElement<FieldElement>, AttributedElement, ClassElement
Models a field. A field can be viewed as a composition of `FieldElement`s, or by random access via accessor methods if only specific parts of the field is needed.

Fields can be obtained from `ClassModel.fields()`, or in the traversal of member elements of a class.

`ClassBuilder.withField(String, ClassDesc, Consumer)` is the main way to construct fields. `ClassBuilder.transformField(java.lang.classfile.FieldModel, java.lang.classfile.FieldTransform)` allows creating a new field by selectively processing the original field elements and directing the results to a field builder.

All field attributes are accessible as member elements.

See Java Virtual Machine Specification:
  4.5 Fields
Since:
  24
See Also:
  - `ClassModel.fields()`
  - `FieldTransform`

## Method Summary

Modifier and Type
Method
Description
`Utf8Entry`
`fieldName()`
Returns the name of this field.
`Utf8Entry`
`fieldType()`
Returns the field descriptor string of this field.
`default ClassDesc`
`fieldTypeSymbol()`
Returns the field type, as a symbolic descriptor.
`AccessFlags`
`flags()`
Returns the access flags.
`Optional<ClassModel>`
`parent()`
Returns the class model this field is a member of, if known.

### Methods declared in interface java.lang.classfile.AttributedElement

`attributes, findAttribute, findAttributes`

### Methods declared in interface java.lang.classfile.CompoundElement

`elementList, elementStream, forEach, iterator, toDebugString`

### Methods declared in interface java.lang.Iterable

`spliterator`

## Method Details

### flags

AccessFlags flags()
Returns the access flags.

Returns:
  the access flags
See Also:
  - `AccessFlag.Location.FIELD`

### parent

Optional<ClassModel> parent()
Returns the class model this field is a member of, if known.

Returns:
  the class model this field is a member of, if known

### fieldName

Utf8Entry fieldName()
Returns the name of this field.

Returns:
  the name of this field

### fieldType

Utf8Entry fieldType()
Returns the field descriptor string of this field.

Returns:
  the field descriptor string of this field

### fieldTypeSymbol

default ClassDesc fieldTypeSymbol()
Returns the field type, as a symbolic descriptor.

Returns:
  the field type, as a symbolic descriptor