Class ElementValue

  • Direct Known Subclasses:
    AnnotationElementValue, ArrayElementValue, ClassElementValue, EnumElementValue, SimpleElementValue

    public abstract class ElementValue
    extends java.lang.Object
    The element_value structure is documented at https://docs.oracle.com/javase/specs/jvms/se11/html/jvms-4.html#jvms-4.7.16.1
     element_value {
         u1 tag;
         union {
             u2 const_value_index;
    
             {   u2 type_name_index;
                 u2 const_name_index;
             } enum_const_value;
    
             u2 class_info_index;
    
             annotation annotation_value;
    
             {   u2            num_values;
                 element_value values[num_values];
             } array_value;
         } value;
     }
     
    • Field Detail

      • STRING

        public static final byte STRING
        Tag for a String element value.
        See Also:
        Constant Field Values
      • ENUM_CONSTANT

        public static final byte ENUM_CONSTANT
        Tag for an enum constant element value.
        See Also:
        Constant Field Values
      • ANNOTATION

        public static final byte ANNOTATION
        Tag for an annotation element value.
        See Also:
        Constant Field Values
      • PRIMITIVE_INT

        public static final byte PRIMITIVE_INT
        Tag for an int primitive element value.
        See Also:
        Constant Field Values
      • PRIMITIVE_BYTE

        public static final byte PRIMITIVE_BYTE
        Tag for a byte primitive element value.
        See Also:
        Constant Field Values
      • PRIMITIVE_CHAR

        public static final byte PRIMITIVE_CHAR
        Tag for a char primitive element value.
        See Also:
        Constant Field Values
      • PRIMITIVE_DOUBLE

        public static final byte PRIMITIVE_DOUBLE
        Tag for a double primitive element value.
        See Also:
        Constant Field Values
      • PRIMITIVE_FLOAT

        public static final byte PRIMITIVE_FLOAT
        Tag for a float primitive element value.
        See Also:
        Constant Field Values
      • PRIMITIVE_LONG

        public static final byte PRIMITIVE_LONG
        Tag for a long primitive element value.
        See Also:
        Constant Field Values
      • PRIMITIVE_SHORT

        public static final byte PRIMITIVE_SHORT
        Tag for a short primitive element value.
        See Also:
        Constant Field Values
      • PRIMITIVE_BOOLEAN

        public static final byte PRIMITIVE_BOOLEAN
        Tag for a boolean primitive element value.
        See Also:
        Constant Field Values
    • Method Detail

      • readElementValue

        public static ElementValue readElementValue​(java.io.DataInput input,
                                                    ConstantPool cpool)
                                             throws java.io.IOException
        Reads an element_value as an ElementValue.
        Parameters:
        input - Raw data input.
        cpool - Constant pool.
        Returns:
        a new ElementValue.
        Throws:
        java.io.IOException - if an I/O error occurs.
      • readElementValue

        public static ElementValue readElementValue​(java.io.DataInput input,
                                                    ConstantPool cpool,
                                                    int arrayNesting)
                                             throws java.io.IOException
        Reads an element_value as an ElementValue.
        Parameters:
        input - Raw data input.
        cpool - Constant pool.
        arrayNesting - level of current array nesting.
        Returns:
        a new ElementValue.
        Throws:
        java.io.IOException - if an I/O error occurs.
        Since:
        6.7.0
      • stringifyValue

        public abstract java.lang.String stringifyValue()
        Returns a string representation of this element value.
        Returns:
        the string representation