Interface ConstantPool

All Superinterfaces:
Iterable<PoolEntry>
All Known Subinterfaces:
ClassReader, ConstantPoolBuilder

public sealed interface ConstantPool extends Iterable<PoolEntry> permits ClassReader, ConstantPoolBuilder
Provides read access to the constant pool and the bootstrap method table of a class file.

Index in the Constant Pool Link icon

The constant pool entries are accessed by index. A valid index is in the range of [1, size()). It is unusable if a LongEntry or DoubleEntry is at its previous index.
See Java Virtual Machine Specification:
4.4 The Constant Pool
Since:
24
See Also:
  • Method Details Link icon

    • entryByIndex Link icon

      PoolEntry entryByIndex(int index)
      Returns the entry at the specified index.
      API Note:
      If only a particular type of entry is expected, use entryByIndex(int, Class).
      Parameters:
      index - the index within the pool of the desired entry
      Returns:
      the entry at the specified index
      Throws:
      ConstantPoolException - if the index is out of range of the constant pool, or is considered unusable
    • size Link icon

      int size()
      Returns the exclusive upper bound of the valid indices of this constant pool. The actual number of entries is lower because 0, size() are not valid, and a valid index may be unusable.
      Returns:
      the exclusive upper bound of the valid indices of this constant pool
      See Also:
    • entryByIndex Link icon

      <T extends PoolEntry> T entryByIndex(int index, Class<T> cls)
      Returns the entry of a given type at the specified index.
      Type Parameters:
      T - the entry type
      Parameters:
      index - the index within the pool of the desired entry
      cls - the entry type
      Returns:
      the entry of a given type at the specified index
      Throws:
      ConstantPoolException - if the index is out of range of the constant pool or considered unusable, or the entry is not of the given type
    • iterator Link icon

      default Iterator<PoolEntry> iterator()
      Returns an iterator over pool entries.
      Specified by:
      iterator in interface Iterable<PoolEntry>
      API Note:
      This skips any unusable index and is less error-prone than iterating by raw index. See Index in the Constant Pool.
      Returns:
      an iterator over pool entries
    • bootstrapMethodEntry Link icon

      BootstrapMethodEntry bootstrapMethodEntry(int index)
      Returns the BootstrapMethodEntry at the specified index within the bootstrap method table.
      Parameters:
      index - the index within the bootstrap method table of the desired entry
      Returns:
      the BootstrapMethodEntry at the specified index within the bootstrap method table
      Throws:
      ConstantPoolException - if the index is out of range of the bootstrap methods
    • bootstrapMethodCount Link icon

      int bootstrapMethodCount()
      Returns the number of entries in the bootstrap method table.
      Returns:
      the number of entries in the bootstrap method table