2025年Java中的invoke()方法

Java中的invoke()方法invoke Object obj Object args invoke 就是调用类中的方法 第一个参数是 obj 对象 在我们平常使用过程中用到的是类 类是对象的一个集合 第二个参数是 args 参数

大家好,我是讯享网,很高兴认识大家。

invoke(Object obj, Object… args):

invoke()就是调用类中的方法,第一个参数是obj(对象),在我们平常使用过程中用到的是类,类是对象的一个集合,第二个参数是args(参数),是调用invoke这个方法所使用的参数,我们使用是一般是类中的方法(method),因此invoke方法我们也可以这样理解:invoke(class,method),相当于把类中的方法参数化了。

比如Test类里有一系列名字相似的方法setValue1、setValue2等等。可以把方法名存进数组v[],然后循环里invoke(test,v[i]),就顺序调用了全部setValue。


讯享网

参数:1)Obj–从中调用基础方法的对象

​ 2)Args:用于方法调用使用的参数

返回:在参数为args的obj上调度此对象表示的方法的结果

 public Object invoke(Object obj, Object... args) //IllegalAccessException:如果这个Method对象强制Java语言访问控制,并且底层方法不可访问 //IllegalArgumentException:如果方法是一个实例方法,而指定的对象参数不是声明底层方法的类或接口的实例 throws IllegalAccessException, IllegalArgumentException, InvocationTargetException //底层方法抛出异常 { if (!override) { if (!Reflection.quickCheckMemberAccess(clazz, modifiers)) { Class<?> caller = Reflection.getCallerClass(); checkAccess(caller, clazz, obj, modifiers); } } MethodAccessor ma = methodAccessor; // read volatile if (ma == null) { ma = acquireMethodAccessor(); } return ma.invoke(obj, args); } 

讯享网
小讯
上一篇 2025-04-11 11:56
下一篇 2025-04-01 11:58

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/69166.html