摘要: 使用反射来调用类的方法,需要使用java.lang.reflect.Method中的invoke方法,Object??invoke(Object obj, Object[] args),第一个参数是指需要调用的那个方法的隐式参数,也即那个方法所属的对象,如果调用的是一个静态方法将第一个参数指定为null,第二个参数是指需要调用的那个方法的显式参数,因为一个方法可以有很多个参数所以在这里我们必须用一个数组来存放这些参数,注意这个方法使用的是对象数组,在存放时尽管有值类型我们也要把相应的包装器类存放进去,当调用的这个方法有返回值,这在Java中是一个令人烦恼的问题,如果返回来的是一个对象还好,我们只需将invoke返回的Object强制转换成特定的对象就可以,可是返回一个值类型呢?我们要使用就麻烦了,首先要对其解包装,在用其包装对象的方法返回普通值!我们编程思路很重要是吧
阅读全文