Package org.apache.tomcat.util.bcel.classfile

## Class ConstantPool

- java.lang.Object
- - org.apache.tomcat.util.bcel.classfile.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)
                                             throws ClassFormatException

      Gets constant from constant pool.
      Type Parameters:
        `T` - A `Constant` subclass
      Parameters:
        `index` - Index in constant pool
      Returns:
        Constant value
      Throws:
        `ClassFormatException` - if index is invalid
      See Also:
        `Constant`

    - #### 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`