获得一个类cla后,一定要知道三个方法cla.getFields();cla.getMethods();cla.getConstructors();才可以更好的利用cla
package com.bdw;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.util.Scanner;
public class Mainboard
{
public static void main(String[]args)
{
Scanner in=new Scanner(System.in);
System.out.println("Input class name :");
String name=in.next();
Class cla=null;
try {
cla=Class.forName(name);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(cla!=null)
{
String modifier = Modifier.toString(cla.getModifiers());
Class supcla=cla.getSuperclass();
if(modifier.length()>0)
{
System.out.print(modifier+" class "+cla.getName());
}
if(supcla!=null)
{
System.out.println(" extends "+supcla.getName());
}
System.out.println("{");
printConstructors(cla);
printMethods(cla);
printField(cla);
System.out.println("}");
}
}
public static void printConstructors(Class cla)
{
Constructor []con=cla.getDeclaredConstructors();
for(Constructor co:con)
{
String st=Modifier.toString(co.getModifiers());
if(st.length()>0)
System.out.print(st+" "+co.getName()+"(");
Class []ob=co.getParameterTypes();
for(int i=0;i<ob.length;++i)
{
if(i!=ob.length-1)
System.out.print(ob[i]+",");
else
System.out.print(ob[i]);
}
System.out.println( ");" );
}
}
public static void printMethods(Class cla)
{
Method []me=cla.getMethods();
for(int i=0;i<me.length;++i)
{
String modi=Modifier.toString(cla.getModifiers());
if(modi.length()>0)
{
System.out.print(modi+" "+me[i].getReturnType()+" "+me[i].getName()+"(");
Class[] para=me[i].getParameterTypes();
for(int j=0;j<para.length;++j)
{
if(j!=para.length-1)
{
System.out.print(para[j]+",");
}
else
{
System.out.print(para[j]);
}
}
System.out.println(");");
}
}
}
public static void printField(Class cla)
{
Field[] fi= cla.getFields();
for(int i=0;i<fi.length;++i)
{
String st=Modifier.toString(fi[i].getModifiers());
if(st.length()>0)
{
System.out.println(st+" "+fi[i].getType()+" "+fi[i].getName()+";");
}
}
}
}