Class 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:
    AnnotationsAttribute, MemberValue
    • Field Detail

      • tag

        public static final java.lang.String tag
        The name of the AnnotationDefault attribute.
        See Also:
        Constant Field Values
    • Constructor Detail

      • 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.
    • Method Detail

      • copy

        public AttributeInfo copy​(ConstPool newCp,
                                  java.util.Map<java.lang.String,​java.lang.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.
      • toString

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