u2
const_name_index
constant_pool中的索引,CONSTANT_Utf8_info类型。记录当前枚举类型的值(枚举类型内部成员字符串)。
enum_const_value
u2
class_info_index
constant_pool中的索引,CONSTANT_Utf8_info类型。以descriptor记录当前值所表达的Class类型。当tag值为’c’时,该项有效。
annotation
annotation_value
当tag值为’@’时,该项有效。记录当前annotation键值对中的值为内嵌的annotation。
array_value
当tag值为’[‘时,该项有效。记录当前annotation键值对中的值为数组类型。
u2
num_values
数组的长度。
element_value
values[num_values]
每一项记录数组中的值。
array_value
value
注:从这个结构中,我们也可以得出annotation中可以设置的值类型:
1. 基本类型值(byte、char、double、float、int、long、short、boolean)
2. 字符串(String)
3. 枚举(enum)
4. 类实例(Class)
5. 嵌套注解类型(annotation)
6. 以上所有以上类型的一维数组。
作者“上善若水”