反射调用函数的问题

来源:3-2 Java中ClassLoader机制介绍(下)

lishuai924

2019-04-01 10:57

反射调用函数的返回值问题, 和调用参数不太懂

写回答 关注

1回答

  • thh_1991
    2019-06-20 14:11:40
    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.

Android Multidex原理及实现

学会使用Multidex分包解决65535问题

6917 学习 · 2 问题

查看课程