Tuesday, 25 June 2013

Textual description of firstImageUrl

Create Custom Annotation In java

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 !!