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:
    • AnnotationDefaultAttribute

      AnnotationDefaultAttribute(ConstPool cp, int n, DataInputStream in) throws IOException
      Parameters:
      n - the attribute name.
      Throws:
      IOException
  • Method Details