Class ConstantDynamic


  • public final class ConstantDynamic
    extends Object
    A constant whose value is computed at runtime, with a bootstrap method.
    Author:
    Remi Forax
    • Constructor Detail

      • ConstantDynamic

        public ConstantDynamic​(String name,
                               String descriptor,
                               Handle bootstrapMethod,
                               Object... bootstrapMethodArguments)
        Constructs a new ConstantDynamic.
        Parameters:
        name - the constant name (can be arbitrary).
        descriptor - the constant type (must be a field descriptor).
        bootstrapMethod - the bootstrap method to use to compute the constant value at runtime.
        bootstrapMethodArguments - the arguments to pass to the bootstrap method, in order to compute the constant value at runtime.
    • Method Detail

      • getName

        public String getName()
        Returns the name of this constant.
        Returns:
        the name of this constant.
      • getDescriptor

        public String getDescriptor()
        Returns the type of this constant.
        Returns:
        the type of this constant, as a field descriptor.
      • getBootstrapMethod

        public Handle getBootstrapMethod()
        Returns the bootstrap method used to compute the value of this constant.
        Returns:
        the bootstrap method used to compute the value of this constant.
      • getBootstrapMethodArgumentCount

        public int getBootstrapMethodArgumentCount()
        Returns the number of arguments passed to the bootstrap method, in order to compute the value of this constant.
        Returns:
        the number of arguments passed to the bootstrap method, in order to compute the value of this constant.
      • getBootstrapMethodArgument

        public Object getBootstrapMethodArgument​(int index)
        Returns an argument passed to the bootstrap method, in order to compute the value of this constant.
        Parameters:
        index - an argument index, between 0 and getBootstrapMethodArgumentCount() (exclusive).
        Returns:
        the argument passed to the bootstrap method, with the given index.
      • getSize

        public int getSize()
        Returns the size of this constant.
        Returns:
        the size of this constant, i.e., 2 for long and double, 1 otherwise.
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object