1.获得Method对象
反射机制允许调用任意方法。首先要先获得Method对象,可以通过调用Class类中的getMethod()方法。需要提供方法名以及方法的参数类型的Class对象。
getMethod方法的签名:Method getMethod(String name, Class... parameterTypes)
//获取Employee.getName()方法的Methode对象
Method m1 = Employee.class.getMethod("getName");
//Employee.raiseSalary()方法的Methode对象
Method m2 = Employee.class.getMethod("raiseSalary", double.class);
2.调用Method.invoke
在Method类中有一个invoke方法,它允许调用包装在当前Method对象中的方法。
invoke方法的签名是:Object invoke(Object obj, Object...args)。第一个参数是隐式参数,其余对象提供了显示参数。对于静态方法,第一个参数可以被忽略(null)。
//调用(Employee)harry.getName()
String name = m1.invoke(harry);
//调用(Employee)harry.raiseSalary(double d)
double salary = m2.invoke(harry, (double)200);
网友评论