Class Field

All Implemented Interfaces:
Annotatable, Attributeable, Commentable, Erasable<Field>, Expression, Node, Renderable, WithName, WithReferences

public class Field extends Variable<TypeRef> implements Erasable<Field>
  • Constructor Details

  • Method Details

    • newField

      public static Field newField(String name)
    • newField

      public static Field newField(Class<?> type, String name)
    • newField

      public static Field newField(TypeRef typeRef, String name)
    • withoutModifiers

      protected Field withoutModifiers()
    • withErasure

      public Field withErasure()
      Description copied from interface: Erasable
      Returns an erased version of this object with generic type information removed. This creates a canonical instance that can be used for comparison and resolution.
      Specified by:
      withErasure in interface Erasable<Field>
      Returns:
      the erased version of this object
    • getErasure

      public String getErasure()
      Description copied from interface: Erasable
      Returns the erasure of this type as a canonical string representation. The erasure removes generic type parameters and provides a stable way to compare types regardless of generic instantiation.
      Specified by:
      getErasure in interface Erasable<Field>
      Returns:
      the type erasure string
    • withoutInitialValue

      public Field withoutInitialValue()
    • withInitialValue

      public Field withInitialValue(Object initialValue)
    • withInitialValue

      public Field withInitialValue(Expression initialValue)
    • withInitialValue

      public Field withInitialValue(Optional<Expression> initialValue)
    • render

      public String render()
      Description copied from interface: Renderable
      Render the type into a String for the purpose of code generation. This is slightly different from the `toString()` method as `toString()` is mostly needed for logging / debugging and should be idempotent. Regarding idempotency this method may yield different result based on the context it is used even if the internal state of the object does not change. An example of such case, is a reference to class that may change based on the package from which it's refenced.
      Specified by:
      render in interface Renderable
      Returns:
      the String representation of the object as it's meant to appear in the generated code.