FileDocCategorySizeDatePackage
ReflectionTester.javaAPI DocExample2301Mon Apr 26 17:07:48 BST 2004com.oreilly.tiger.ch06

ReflectionTester

public class ReflectionTester extends Object

Fields Summary
Constructors Summary
public ReflectionTester()

  
Methods Summary
public static voidmain(java.lang.String[] args)

    try {
      ReflectionTester tester = new ReflectionTester();

      tester.testAnnotationPresent(System.out);
      tester.testInheritedAnnotation(System.out);

      tester.testGetAnnotation(System.out);

      Class c = AnnotationTester.class;
      AnnotatedElement element = c.getMethod("calculateInterest", 
                                    float.class, float.class);      
      tester.printAnnotations(element, System.out);
    } catch (Exception e) {
      e.printStackTrace();
    } 
  
public voidprintAnnotations(java.lang.reflect.AnnotatedElement e, java.io.PrintStream out)


    out.printf("Printing annotations for '%s'%n%n", e.toString());

    Annotation[] annotations = e.getAnnotations();
    for (Annotation a : annotations) {
      out.printf("    * Annotation '%s' found%n", 
        a.annotationType().getName());
    }
  
public voidtestAnnotationPresent(java.io.PrintStream out)

    Class c = Super.class;
    boolean inProgress = c.isAnnotationPresent(InProgress.class);
    if (inProgress) {
      out.println("Super is In Progress");
    } else {
      out.println("Super is not In Progress");
    }
  
public voidtestGetAnnotation(java.io.PrintStream out)


    Class c = AnnotationTester.class;
    AnnotatedElement element = c.getMethod("calculateInterest", 
                                  float.class, float.class);

    GroupTODO groupTodo = element.getAnnotation(GroupTODO.class);
    String assignedTo = groupTodo.assignedTo();

    out.println("TODO Item on Annotation Tester is assigned to: '" + 
        assignedTo + "'");
  
public voidtestInheritedAnnotation(java.io.PrintStream out)

    Class c = Sub.class;
    boolean inProgress = c.isAnnotationPresent(InProgress.class);
    if (inProgress) {
      out.println("Sub is In Progress");
    } else {
      out.println("Sub is not In Progress");
    }