Class Field

All Implemented Interfaces:
Cloneable, Node

public final class Field extends FieldOrMethod
This class represents the field info structure, i.e., the representation for a variable in the class. See JVM specification for details.
  • Field Details

    • EMPTY_ARRAY

      public static final Field[] EMPTY_ARRAY
      Empty array constant.
      Since:
      6.6.0
  • Constructor Details

    • Field

      public Field(Field c)
      Initialize from another object. Note that both objects use the same references (shallow copy). Use clone() for a physical copy.
      Parameters:
      c - Source to copy.
    • Field

      public Field(int accessFlags, int nameIndex, int signatureIndex, Attribute[] attributes, ConstantPool constantPool)
      Parameters:
      accessFlags - Access rights of field
      nameIndex - Points to field name in constant pool
      signatureIndex - Points to encoded signature
      attributes - Collection of attributes
      constantPool - Array of constants
  • Method Details

    • getComparator

      Returns:
      Comparison strategy object.
    • setComparator

      public static void setComparator(BCELComparator<Field> comparator)
      Parameters:
      comparator - Comparison strategy object.
    • accept

      public void accept(Visitor v)
      Called by objects that are traversing the nodes of the tree implicitly defined by the contents of a Java class. I.e., the hierarchy of methods, fields, attributes, etc. spawns a tree of objects.
      Parameters:
      v - Visitor object
    • copy

      public Field copy(ConstantPool constantPool)
      Returns:
      deep copy of this field
    • equals

      public boolean equals(Object obj)
      Return value as defined by given BCELComparator strategy. By default two Field objects are said to be equal when their names and signatures are equal.
      Overrides:
      equals in class Object
      See Also:
    • getConstantValue

      Returns:
      constant value associated with this field (may be null)
    • getType

      public Type getType()
      See https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.2.2
      Returns:
      type of field
    • hashCode

      public int hashCode()
      Return value as defined by given BCELComparator strategy. By default return the hash code of the field's name XOR signature.
      Overrides:
      hashCode in class Object
      See Also:
    • toString

      public String toString()
      Return string representation close to declaration format, 'public static final short MAX = 100', e.g..
      Overrides:
      toString in class Object
      Returns:
      String representation of field, including the signature.