Reflection Java Tutorial

import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
public class MethodInspector {
  public static void main(String[] arguments) {
    Class inspect;
    try {
      if (arguments.length > 0)
        inspect = Class.forName(arguments[0]);
      else
        inspect = Class.forName("MethodInspector");
      Method[] methods = inspect.getDeclaredMethods();
      for (int i = 0; i < methods.length; i++) {
        Method methVal = methods[i];
        Class returnVal = methVal.getReturnType();
        int mods = methVal.getModifiers();
        String modVal = Modifier.toString(mods);
        Class[] paramVal = methVal.getParameterTypes();
        StringBuffer params = new StringBuffer();
        for (int j = 0; j < paramVal.length; j++) {
          if (j > 0)
            params.append(", ");
          params.append(paramVal[j].getName());
        }
        System.out.println("Method: " + methVal.getName() + "()");
        System.out.println("Modifiers: " + modVal);
        System.out.println("Return Type: " + returnVal.getName());
        System.out.println("Parameters: " + params + "\n");
      }
    } catch (ClassNotFoundException c) {
      System.out.println(c.toString());
    }
  }
}