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));
AnnotationsAttribute,
MemberValue| Modifier and Type | Field and Description |
|---|---|
static String |
tag
The name of the
AnnotationDefault attribute. |
constPool| Constructor and Description |
|---|
AnnotationDefaultAttribute(ConstPool cp)
Constructs an empty
AnnotationDefault_attribute. |
AnnotationDefaultAttribute(ConstPool cp,
byte[] info)
Constructs an
AnnotationDefault_attribute. |
| Modifier and Type | Method and Description |
|---|---|
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.
|
get, getConstPool, getName, length, setpublic static final String tag
AnnotationDefault attribute.public AnnotationDefaultAttribute(ConstPool cp, byte[] info)
AnnotationDefault_attribute.cp - constant poolinfo - the contents of this attribute. It does not
include attribute_name_index or
attribute_length.public AnnotationDefaultAttribute(ConstPool cp)
AnnotationDefault_attribute.
The default value can be set by setDefaultValue().cp - constant poolsetDefaultValue(javassist.bytecode.annotation.MemberValue)public AttributeInfo copy(ConstPool newCp, Map classnames)
copy in class AttributeInfonewCp - the constant pool table used by the new copy.classnames - pairs of replaced and substituted
class names.public MemberValue getDefaultValue()
public void setDefaultValue(MemberValue value)
value - the new value.Annotation.createMemberValue(ConstPool, CtClass)Copyright © 2016 Shigeru Chiba, www.javassist.org. All Rights Reserved.