package reflect;
import java.util.*;
import java.lang.reflect.*;
/**
* This program uses reflection
* @version 1.1 20156.30
* @author Administrator
*
*/
public class ReflectionTest {
public static void main(String[] args){
String name;
if(args.length>0)
name=args[0];
else{
Scanner in=new Scanner(System.in);
System.out.println("Enter class name(e.g. java.util.Date):");
name=in.next();
}
try{
Class cl=Class.forName(name);
Class superCl=cl.getSuperclass();
String modifiers=Modifier.toString(cl.getModifiers());
if(modifiers.length()>0) System.out.print(modifiers+" ");
System.out.print("class"+" "+cl.getName());
if(superCl!=null&&superCl!=Object.class)
System.out.println(" extends"+superCl.getName()+"{");
printConstructors(cl);
System.out.println();
printMethods(cl);
System.out.println();
printFields(cl);
System.out.println("}");
}catch(ClassNotFoundException e){
e.printStackTrace();
}
}
/**
* Prints all constructors of a class
* @param cl a class
*/
public static void printConstructors(Class cl)
{
Constructor[] constructors=cl.getDeclaredConstructors();
for(Constructor c:constructors){
String name=c.getName();
System.out.print(" ");
String modifiers=Modifier.toString(c.getModifiers());
if(modifiers.length()>0)
System.out.print(modifiers);
System.out.print(" "+name+"(");
Class[] paramTypes=c.getParameterTypes();
for(int j=0;j