public final class ConstantValueAttribute_info extends Attribute_info
Field_info
structures. A ConstantValue
attribute represents the value of a constant field that must be (explicitly or
implicitly) static; that is, the ACC_STATIC bit in the flags item of the
Field_info structure must be set. The field is not required to be final. There
can be no more than one ConstantValue attribute in the attributes table of a
given Field_info structure. The constant field represented by the Field_info
structure is assigned the value referenced by its ConstantValue attribute as
part of its initialization.The ConstantValue attribute has the format
ConstantValue_attribute { u2 attribute_name_index; u4 attribute_length; u2 constantvalue_index; }The value of the constantvalue_index item must be a valid index into the constant pool table. The constant pool entry at that index must give the constant value represented by this attribute.
The constant pool entry must be of a type appropriate to the field, as shown below:
Field Type | Entry Type |
---|---|
long | CONSTANT_Long |
float | CONSTANT_Float |
double | CONSTANT_Double |
int, short, char, byte, boolean | CONSTANT_Integer |
java.lang.String | CONSTANT_String |
Modifier and Type | Field and Description |
---|---|
private static boolean |
DEBUG |
int |
m_value_index |
ATTRIBUTE_BRIDGE, ATTRIBUTE_CODE, ATTRIBUTE_CONSTANT_VALUE, ATTRIBUTE_EXCEPTIONS, ATTRIBUTE_INNERCLASSES, ATTRIBUTE_LINE_NUMBER_TABLE, ATTRIBUTE_SOURCEFILE, ATTRIBUTE_SYNTHETIC, m_attribute_length, m_name_index
Constructor and Description |
---|
ConstantValueAttribute_info(int attribute_name_index,
int value_index) |
ConstantValueAttribute_info(int attribute_name_index,
long attribute_length,
UDataInputStream bytes) |
Modifier and Type | Method and Description |
---|---|
void |
accept(IAttributeVisitor visitor,
java.lang.Object ctx) |
java.lang.Object |
clone()
Performs a deep copy.
|
CONSTANT_literal_info |
getValue(ClassDef cls) |
long |
length()
Returns the total length of this attribute when converted to
.class format [including the 6-byte header]
|
java.lang.String |
toString() |
void |
writeInClassFormat(UDataOutputStream out) |
getName, new_Attribute_info
public int m_value_index
private static final boolean DEBUG
public ConstantValueAttribute_info(int attribute_name_index, int value_index)
ConstantValueAttribute_info(int attribute_name_index, long attribute_length, UDataInputStream bytes) throws java.io.IOException
java.io.IOException
public CONSTANT_literal_info getValue(ClassDef cls)
public long length()
Attribute_info
length
in class Attribute_info
public void accept(IAttributeVisitor visitor, java.lang.Object ctx)
accept
in class Attribute_info
public java.lang.String toString()
toString
in class Attribute_info
public java.lang.Object clone()
clone
in class Attribute_info
public void writeInClassFormat(UDataOutputStream out) throws java.io.IOException
writeInClassFormat
in interface IClassFormatOutput
writeInClassFormat
in class Attribute_info
java.io.IOException