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