Reflection Java Tutorial

/*
 *     file: NestedInfoDemo.java
 *  package: oreilly.hcj.reflection
 *
 * This software is granted under the terms of the Common Public License,
 * CPL, which may be found at the following URL:
 * http://www-124.ibm.com/developerworks/oss/CPLv1.0.htm
 *
 * Copyright(c) 2003-2005 by the authors indicated in the @author tags.
 * All Rights are Reserved by the various authors.
 *
########## DO NOT EDIT ABOVE THIS LINE ########## */
import java.util.Arrays;
import javax.swing.JTable;
/**  
 * Demonstrates fetching nested class info from a Class object.
 *
 * @author Robert Simmons jr. (kraythe)
 * @version $Revision: 1.3 $
 */
public class NestedInfoDemo {
  /** 
   * Demo method.
   *
   * @param args Command line arguments.
   */
  public static void main(final String[] args) {
    printMemberClasses(JTable.class);
  }
  /** 
   * Printo out member information for a class.
   *
   * @param dataType The class to work with.
   */
  public static void printMemberClasses(final Class dataType) {
    final Class[] nestedClasses = dataType.getClasses();
    final Class[] declaredNestedClasses = dataType.getDeclaredClasses();
    final Class[] nestedInterfaces = dataType.getInterfaces();
    final Class declaringClass = dataType.getDeclaringClass();
    // --
    System.out.println("Member Class infor for: " + dataType.getName());
    System.out.println("Nested Classes: " + Arrays.asList(nestedClasses));
    System.out.println("Declared Nested Classes: "
                       + Arrays.asList(declaredNestedClasses));
    System.out.println("Interfaces: " + Arrays.asList(nestedInterfaces));
    System.out.println("Declaring Class: " + declaringClass);
    System.out.println();
  }
}
/* ########## End of File ########## */