Annotations are meta data to be used by compiler or run time environment.Creating your custom annotation in java is very simple .
import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface MyAnnotation { String value() default "myAnootation"; String[] arr() default {"testarr"}; }Here , the RetentionPolicy.RUNTIME will determine whether the annotation will be present at run time or not.To test the annotation and get the values , let's create a test class
import java.lang.annotation.Annotation; import java.lang.reflect.Method; /** * * * @author Abhishek Somani * */ public class MyAnnotationTest { @MyAnnotation(value="test my annotation",arr={"my arr test"}) public void annotationTest() { } public static void main(String[] args) { Method[] methods = MyAnnotationTest.class.getDeclaredMethods(); for(Method m : methods) { for(Annotation a : m.getAnnotations()) { if ( a instanceof MyAnnotation) { MyAnnotation ann = (MyAnnotation)a; System.out.println(ann.value()); for(String s : ann.arr()) { System.out.println(s); } } } } } }Here annotation is on method level , we can access the annotation element values using reflection on method.If the do not specify RetentionPolicy as RUNTIME , the jvm will ignore this annotation and we will not be able to access this annotation. Post Comments and Suggestions !!