获得一个类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()+";"); } } } }