Class Field

  • All Implemented Interfaces:
    java.lang.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 Detail

      • EMPTY_ARRAY

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

        static final Field[] EMPTY_FIELD_ARRAY
        Empty array.
    • Constructor Detail

      • 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 Detail

      • getComparator

        public static BCELComparator<Field> 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​(java.lang.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 java.lang.Object
        See Also:
        Object.equals(Object)
      • getConstantValue

        public ConstantValue 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 java.lang.Object
        See Also:
        Object.hashCode()
      • toString

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