Class ConstantPool


  • public class ConstantPool
    extends java.lang.Object
    This class represents the constant pool, i.e., a table of constants, of a parsed classfile. It may contain null references, due to the JVM specification that skips an entry after an 8-byte constant (double, long) entry. Those interested in generating constant pools programmatically should see ConstantPoolGen.
    See Also:
    Constant
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      <T extends Constant>
      T
      getConstant​(int index)
      Gets constant from constant pool.
      <T extends Constant>
      T
      getConstant​(int index, byte tag)
      Gets constant from constant pool and check whether it has the expected type.
      <T extends Constant>
      T
      getConstant​(int index, java.lang.Class<T> castTo)
      Gets constant from constant pool.
      ConstantInteger getConstantInteger​(int index)
      Gets constant from constant pool and check whether it has the expected type.
      ConstantUtf8 getConstantUtf8​(int index)
      Gets constant from constant pool and check whether it has the expected type.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • getConstant

        public <T extends Constant> T getConstant​(int index,
                                                  byte tag)
                                           throws ClassFormatException
        Gets constant from constant pool and check whether it has the expected type.
        Type Parameters:
        T - A Constant subclass
        Parameters:
        index - Index in constant pool
        tag - Tag of expected constant, i.e., its type
        Returns:
        Constant value
        Throws:
        ClassFormatException - if constant type does not match tag
        See Also:
        Constant
      • getConstant

        public <T extends Constant> T getConstant​(int index,
                                                  java.lang.Class<T> castTo)
                                           throws ClassFormatException
        Gets constant from constant pool.
        Type Parameters:
        T - A Constant subclass
        Parameters:
        index - Index in constant pool
        castTo - The Constant subclass to cast to.
        Returns:
        Constant value
        Throws:
        ClassFormatException - if index is invalid
        See Also:
        Constant
      • getConstantInteger

        public ConstantInteger getConstantInteger​(int index)
        Gets constant from constant pool and check whether it has the expected type.
        Parameters:
        index - Index in constant pool
        Returns:
        ConstantInteger value
        Throws:
        ClassFormatException - if constant type does not match tag
        See Also:
        ConstantInteger
      • getConstantUtf8

        public ConstantUtf8 getConstantUtf8​(int index)
                                     throws ClassFormatException
        Gets constant from constant pool and check whether it has the expected type.
        Parameters:
        index - Index in constant pool
        Returns:
        ConstantUtf8 value
        Throws:
        ClassFormatException - if constant type does not match tag
        See Also:
        ConstantUtf8