class="java">/** * */ package test8_15; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; /** * * Simple to Introduction * @ProjectName: [测试] * @Package: [test8_15.testInvoke.java] * @ClassName: [testInvoke] * @Description: [测试反射机制] * @Author: [孟宪光] * @CreateDate: [2014-8-15 下午3:43:18] * @UpdateUser: [mengxianguang] * @UpdateDate: [2014-8-15 下午3:43:18] * @UpdateRemark: [说明本次修改内容] * @Version: [v1.0] * */ public class testInvoke { public static void main(String[] args) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, InstantiationException, SecurityException, NoSuchMethodException { Class clazz;//定义一个类 Object obj=null;//定义一个对象 try { clazz = Class.forName("java.util.HashSet");//根据类名获得一个类 obj=clazz.newInstance();//实例化一个对象 Method[]methods=clazz.getMethods();//得到类的所有方法 for(Method method:methods){ System.out.println(method.getName());//输出所有的方法名 } //现在想用该类中的一个方法例如add(前提是之前的方法中已经有) //定义一个方法对象 Method method=clazz.getMethod("add", Object.class); //使用该方法,通过定义的method method.invoke(obj, "a"); method.invoke(obj, "b"); method.invoke(obj, "c"); //现在输出对象中增加的值 System.out.println(obj); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }