It
is used to indicate that annotations on a class C
corresponding to a given annotation type are inherited by
subclasses of C.
Running
without Inherited Annotation
import java.lang.annotation.Inherited; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @Retention(RetentionPolicy.RUNTIME) public @interface MyAnnotation1{ String value(); }
@MyAnnotation1("abcd") public class SuperClass { }
import java.lang.annotation.Annotation; public class SubClass extends SuperClass{ public static void main(String args[]){ Class myClass = SubClass.class; Annotation ann[] = myClass.getAnnotations(); for(int i=0; i< ann.length; i++){ System.out.println(ann[i].toString()); } } }
Output
prints nothing. Now try to add @Inherited Annotation to MyAnnotation1
and re compile and run the SubClass.java.
Running with Inherited Annotation
Running with Inherited Annotation
import java.lang.annotation.Inherited; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @Retention(RetentionPolicy.RUNTIME) @Inherited public @interface MyAnnotation1{ String value(); }
Output
@MyAnnotation1(value=abcd)
No comments:
Post a Comment