javassist.bytecode
public class AnnotationDefaultAttribute extends AttributeInfo
AnnotationDefault_attribute
.
For example, if you declare the following annotation type:
@interface Author { String name() default "Shakespeare"; int age() default 99; }
The defautl values of name
and age
are stored as annotation default attributes in Author.class
.
The following code snippet obtains the default value of name
:
ClassPool pool = ... CtClass cc = pool.get("Author"); CtMethod cm = cc.getDeclaredMethod("age"); MethodInfo minfo = cm.getMethodInfo(); AnnotationDefaultAttribute ada = (AnnotationDefaultAttribute) minfo.getAttribute(AnnotationDefaultAttribute.tag); MemberValue value = ada.getDefaultValue()); // default value of age
If the following statement is executed after the code above, the default value of age is set to 80:
ada.setDefaultValue(new IntegerMemberValue(minfo.getConstPool(), 80));
See Also: AnnotationsAttribute MemberValue
Field Summary | |
---|---|
static String | tag
The name of the AnnotationDefault attribute. |
Constructor Summary | |
---|---|
AnnotationDefaultAttribute(ConstPool cp, byte[] info)
Constructs an AnnotationDefault_attribute .
| |
AnnotationDefaultAttribute(ConstPool cp)
Constructs an empty AnnotationDefault_attribute .
|
Method Summary | |
---|---|
AttributeInfo | copy(ConstPool newCp, Map classnames)
Copies this attribute and returns a new copy. |
MemberValue | getDefaultValue()
Obtains the default value represented by this attribute. |
void | setDefaultValue(MemberValue value)
Changes the default value represented by this attribute.
|
String | toString()
Returns a string representation of this object. |
AnnotationDefault
attribute.AnnotationDefault_attribute
.
Parameters: cp constant pool info the contents of this attribute. It does not
include attribute_name_index
or
attribute_length
.
AnnotationDefault_attribute
.
The default value can be set by setDefaultValue()
.
Parameters: cp constant pool
See Also: setDefaultValue
Parameters: value the new value.
See Also: Annotation