FieldModel (Java SE 25 & JDK 25)
Description: declaration: module: java.base, package: java.lang.classfile, interface: FieldModel
Keywords: java.lang.classfile.FieldModel interface

# 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(FieldModel, 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 AttributedElement

  `attributes, findAttribute, findAttributes`

  ### Methods declared in interface CompoundElement

  `elementList, elementStream, forEach, iterator, toDebugString`

  ### Methods declared in interface 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