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 java.lang.String |
tag
The name of the
AnnotationDefault attribute. |
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,
java.util.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.
|
java.lang.String |
toString()
Returns a string representation of this object.
|
get, getConstPool, getName, length, set
public static final java.lang.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, java.util.Map classnames)
copy
in class AttributeInfo
newCp
- 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)
public java.lang.String toString()
toString
in class java.lang.Object
Javassist, a Java-bytecode translator toolkit.
Copyright (C) 1999- Shigeru Chiba. All Rights Reserved.