java反射中:invoke函数和String.class的使用 |
import java.lang.reflect.Method; public class MethodTest { public static void main(String[] args) { String[] names = { "tom", "tim", "allen", "alice" }; Class<?> clazz = Test.class;//获得字节码文件 try { //// 获得字节码中的方法 //// getMethod(String name, Class[] params):这个是获得特定方法,name参数指定方法的名字,param参数指定方法的参数类型 Method method = clazz.getMethod("sayHi", String.class);// String.class反射得到这个对象所属类的信息,执行Test类中的sayHi方法 for (String name : names) method.invoke(clazz.newInstance(), name);// 这个是调用类中的方法,动态传入参数 } catch (Exception e) { e.printStackTrace(); } } } class Test { public void sayHi(String name) { System.out.println("Hi " + name); } }
//控制台输出: