Show all annotations for a class and a method. : Annotation « Reflection « Java Tutorial

import java.lang.annotation.Annotation;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.reflect.Method;

@interface MyAnno {
  String str();

  int val();

@interface What {
  String description();

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

  @What(description = "An annotation test method")
  @MyAnno(str = "Testing", val = 100)
  public static void myMeth() {
    Meta2 ob = new Meta2();

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

      System.out.println("All annotations for Meta2:");
      for (Annotation a : annos)

      Method m = ob.getClass().getMethod("myMeth");
      annos = m.getAnnotations();

      System.out.println("All annotations for myMeth:");
      for (Annotation a : annos)

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

  public static void main(String args[]) {

7.8.1.Use reflection to display the annotation associated with a method.
7.8.2.Show all annotations for a class and a method.
7.8.3.Get annotation by Annotation class
7.8.4.Get annotation by type