java反射中:invoke函数和String.class的使用

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);
	}
}

//控制台输出:


猜你喜欢

转载自blog.csdn.net/handsome2013/article/details/80581989