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 Summary

      Fields 
      Modifier and Type Field Description
      static byte ANNOTATION
      Tag for an annotation element value.
      static byte ARRAY
      Tag for an array element value.
      static byte CLASS
      Tag for a class element value.
      static byte ENUM_CONSTANT
      Tag for an enum constant element value.
      static byte PRIMITIVE_BOOLEAN
      Tag for a boolean primitive element value.
      static byte PRIMITIVE_BYTE
      Tag for a byte primitive element value.
      static byte PRIMITIVE_CHAR
      Tag for a char primitive element value.
      static byte PRIMITIVE_DOUBLE
      Tag for a double primitive element value.
      static byte PRIMITIVE_FLOAT
      Tag for a float primitive element value.
      static byte PRIMITIVE_INT
      Tag for an int primitive element value.
      static byte PRIMITIVE_LONG
      Tag for a long primitive element value.
      static byte PRIMITIVE_SHORT
      Tag for a short primitive element value.
      static byte STRING
      Tag for a String element 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 - Thrown if an I/O error occurs.
      • stringifyValue

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