Java Reflection - Java Method.getAnnotation(Class <T> annotationClass)


Method.getAnnotation(Class <T> annotationClass) has the following syntax.

public <T extends Annotation> T getAnnotation(Class <T> annotationClass)


In the following code shows how to use Method.getAnnotation(Class <T> annotationClass) method.

//www  .  j  a  v  a  2s. c  o m
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.reflect.Method;

@interface MyAnno {
  String str();

  int val();

public class Main{
  @MyAnno(str = "Two Parameters", val = 19)
  public static void myMeth(String str, int i) {
    Main ob = new Main();

    try {
      Class c = ob.getClass();

      Method m = c.getMethod("myMeth", String.class, int.class);

      MyAnno anno = m.getAnnotation(MyAnno.class);

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

  public static void main(String args[]) {
    myMeth("test", 10);

The code above generates the following result.