import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; public class TestReflection { public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException { String str = "T"; Class c = Class.forName(str); Object o =c.newInstance(); //显示生成类中的所有方法 Method[] method = c.getMethods(); //增强的for循环 for(Method m : method) { // System.out.println(m.getName()); // // if(m.getName().equals("mm")) // { // m.invoke(o);//invoke()为调用 // } if(m.getName().equals("mi")) { System.out.println(m.invoke(o,1,2));//invoke()为调用 for(Class paramType : m.getParameterTypes()) { System.out.println(paramType.getName());//获得对象的两个参数的类型 } } if(m.getName().equals("getS")) { Class returnType = m.getReturnType();//获取返回的类型 System.out.println(returnType.getName()); } } } } class T { static { System.out.println("T loaded:"); } public T() { System.out.println("T constructed"); } int i; String s; public void mm() { System.out.println("mm is loaded"); } // public int mi(int i, int j) { this.i = i + j; return this.i; } public void getS() { } }