反射调用函数的问题
反射调用函数的返回值问题, 和调用参数不太懂
反射调用函数的返回值问题, 和调用参数不太懂
2019-04-01
public Object invoke(Object receiver, Object... args)
receiver: 从中调用底层方法的对象
args: 用于方法调用的参数
Object(返回结果):使用参数args在obj上指派该对象所表示方法的结果。
//创建A的实例
Class<?> aClazz = A.class;
//获取A类的add方法
Object obj = aClazz.newInstance();
Method method = aClazz.getMethod("add",int.class,int.class);//调用method对应的方法 => add(1,4)
Object result = method.invoke(obj,1,4);
class A {
private int x;
public int add(int a, int b) {
return a+b;
}
}set(Object obj, Object value):将指定对象obj变量上此 Field 对象表示的字段设置为指定的新值value
A a = new A();
Field field = a.getClass().getDeclaredField("x");
field.setAccessible(true);
field.set(a, 1)
这样就会将对象a上x的字段设置为1.
举报