Annotations in Java - Simple Example

import java.lang.annotation.*;
import java.lang.reflect.*;

@Retention(RetentionPolicy.RUNTIME)
//@Target(ElementType.TYPE)
@interface MyAnno {
String str();
int val();
}

@Retention(RetentionPolicy.RUNTIME)
@interface What {
String description();
}

@What(description = "An annotation test class CLASS LEVEL")
@MyAnno(str = "Meta2 CLASS LEVEL", val = 99)
public class Meta2 {

@What(description = "An annotation test method METH LEVEL")
@MyAnno(str = "Testing METH LEVEL", val = 100)
public static void myMeth() {
System.out.println(" in myMethod");
Meta2 ob = new Meta2();

try {
Annotation annos[] = ob.getClass().getAnnotations();

// Display all annotations for Meta2.
System.out.println("~~~All annotations for My Class :");
for(Annotation a : annos)
System.out.println(a);

System.out.println();

// Display all annotations for myMeth.
Method m = ob.getClass( ).getMethod("myMeth");
annos = m.getAnnotations();

System.out.println("~~~All annotations for my Meth:");
for(Annotation a : annos)
System.out.println(a);

} catch (NoSuchMethodException exc) {
System.out.println("Method Not Found.");
}
}

public static void main(String args[]) {
myMeth();
}
}

0 comments: