Class Constant

java.lang.Object
org.apache.bcel.classfile.Constant
All Implemented Interfaces:
Cloneable, Node
Direct Known Subclasses:
ConstantClass, ConstantCP, ConstantDouble, ConstantFloat, ConstantInteger, ConstantLong, ConstantMethodHandle, ConstantMethodType, ConstantModule, ConstantNameAndType, ConstantPackage, ConstantString, ConstantUtf8

public abstract class Constant extends Object implements Cloneable, Node
Abstract superclass for classes to represent the different constant types in the constant pool of a class file. The classes keep closely to the JVM specification.
  • Field Details

    • tag

      @Deprecated protected byte tag
      Deprecated.
      (since 6.0) will be made private; do not access directly, use getter/setter
  • Method Details

    • getComparator

      Returns:
      Comparison strategy object.
    • readConstant

      public static Constant readConstant(DataInput dataInput) throws IOException, ClassFormatException
      Reads one constant from the given input, the type depends on a tag byte.
      Parameters:
      dataInput - Input stream
      Returns:
      Constant object
      Throws:
      IOException - if an I/O error occurs reading from the given dataInput.
      ClassFormatException - if the next byte is not recognized
      Since:
      6.0 made public
    • setComparator

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

      public abstract 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.
      Specified by:
      accept in interface Node
      Parameters:
      v - Visitor object
    • clone

      public Object clone()
      Overrides:
      clone in class Object
    • copy

      public Constant copy()
      Returns:
      deep copy of this constant
    • dump

      public abstract void dump(DataOutputStream file) throws IOException
      Throws:
      IOException
    • equals

      public boolean equals(Object obj)
      Returns value as defined by given BCELComparator strategy. By default two Constant objects are said to be equal when the result of toString() is equal.
      Overrides:
      equals in class Object
      See Also:
    • getTag

      public final byte getTag()
      Returns:
      Tag of constant, i.e., its type. No setTag() method to avoid confusion.
    • hashCode

      public int hashCode()
      Returns value as defined by given BCELComparator strategy. By default return the hash code of the result of toString().
      Overrides:
      hashCode in class Object
      See Also:
    • toString

      public String toString()
      Overrides:
      toString in class Object
      Returns:
      String representation.