// Purpose.  Default functionality for querying ctors, methods, and fields

import java.lang.reflect.*;

public class ReflectShowClassEasy {
   public static void main(String args[]) {
      Class classDS = null;
      // Go get the "Class" data structure for the "fully qualified" class
      // name specified on the command line, by using the "class loader" to
      // load the class's ".class" file and then return its "metadata"
      try {
         classDS = Class.forName( args[0] );
      } catch (ClassNotFoundException e) { System.out.println( e ); }
      Constructor[] ctors   = classDS.getConstructors();
      Method[]      methods = classDS.getDeclaredMethods();
      Field[]       fields  = classDS.getDeclaredFields();

      System.out.println( "Constructors:" );
      for (int i = 0; i < ctors.length; i++)
         System.out.println( "   " + ctors[i] );

      System.out.println( "Methods:" );
      for (int i = 0; i < methods.length; i++)
         System.out.println( "   " + methods[i] );

      System.out.println( "Fields:" );
      for (int i = 0; i < fields.length; i++)
         System.out.println( "   " + fields[i] );
   }
}

// C:> java ReflectShowClassEasy java.util.StringTokenizer
// Constructors:    // a few names have been shortened by hand to make them fit
//    public java.util.StringTokenizer(java.lang.String)
//    public java.util.StringTokenizer(java.lang.String,java.lang.String)
//    public java.util.StringTokenizer(String,String,boolean)
// Methods:
//    public int java.util.StringTokenizer.countTokens()
//    public boolean java.util.StringTokenizer.hasMoreElements()
//    public boolean java.util.StringTokenizer.hasMoreTokens()
//    public java.lang.Object java.util.StringTokenizer.nextElement()
//    public java.lang.String java.util.StringTokenizer.nextToken()
//    public java.lang.String java.util.StringTokenizer.nextToken(String)
//    private void java.util.StringTokenizer.skipDelimiters()
// Fields:
//    private int java.util.StringTokenizer.currentPosition
//    private int java.util.StringTokenizer.maxPosition
//    private java.lang.String java.util.StringTokenizer.str
//    private java.lang.String java.util.StringTokenizer.delimiters
//    private boolean java.util.StringTokenizer.retTokens
