Class AnnotationDefaultAttribute

java.lang.Object
javassist.bytecode.AttributeInfo
javassist.bytecode.AnnotationDefaultAttribute

public class AnnotationDefaultAttribute extends AttributeInfo
A class representing 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:
  • Field Details

  • Constructor Details

    • AnnotationDefaultAttribute

      public AnnotationDefaultAttribute(ConstPool cp, byte[] info)
      Constructs an AnnotationDefault_attribute.
      Parameters:
      cp - constant pool
      info - the contents of this attribute. It does not include attribute_name_index or attribute_length.
    • AnnotationDefaultAttribute

      public AnnotationDefaultAttribute(ConstPool cp)
      Constructs an empty AnnotationDefault_attribute. The default value can be set by setDefaultValue().
      Parameters:
      cp - constant pool
      See Also:
  • Method Details

    • copy

      public AttributeInfo copy(ConstPool newCp, Map<String,String> classnames)
      Copies this attribute and returns a new copy.
      Overrides:
      copy in class AttributeInfo
      Parameters:
      newCp - the constant pool table used by the new copy.
      classnames - pairs of replaced and substituted class names.
    • getDefaultValue

      public MemberValue getDefaultValue()
      Obtains the default value represented by this attribute.
    • setDefaultValue

      public void setDefaultValue(MemberValue value)
      Changes the default value represented by this attribute.
      Parameters:
      value - the new value.
      See Also:
    • toString

      public String toString()
      Returns a string representation of this object.
      Overrides:
      toString in class Object