Java Method的invoke方法
Java中通过反射去执行某个方法时,写法需要注意。对反射用的不熟,所以这里记录一下:
获取到Class对象的Method,也就是类的某个方法(静态方法或者实例方法)
invoke执行,invoke()方法是可变长参数,如下
public Object invoke(Object obj, Object... args)throws IllegalAccessException, IllegalArgumentException,InvocationTargetException{if (!override) {if (!Reflection.quickCheckMemberAccess(clazz, modifiers)) {Class<?> caller = Reflection.getCallerClass();checkAccess(caller, clazz, obj, modifiers);}}MethodAccessor ma = methodAccessor; // read volatileif (ma == null) {ma = acquireMethodAccessor();}return ma.invoke(obj, args);}
都是Object类型,所以第一个参数为实例对象,所以在调用时,一定需要显示的写两个参数,第一个为实例对象,如果为静态方法则传null。第二个参数即被反射执行的方法的形参,如果不为null的话,直接写即可,如果为null,需要写成Object[] 数组类型。文档中写明了,对于null值,他并不知道这个可变长参数的长度,而对于非null,是编译知道的。
伪代码如下:
method.invoke(null, -10000l)method.invoke(obj, new Object[]{null})
Java Method的invoke方法相关推荐
- JAVA深入研究——Method的Invoke方法。
在写代码的时候,发现Method可以调用子类的对象,但子类即使是改写了的Method,方法名一样,去调用父类的对象也会报错,虽然这是很符合多态的现象,也符合java的动态绑定规范,但还是想弄懂java ...
- java中的invoke方法_详解Java中Method的Invoke方法
在写代码的时候,发现从父类class通过getDeclaredMethod获取的Method可以调用子类的对象,而子类改写了这个方法,从子类class通过getDeclaredMethod也能获取到M ...
- java教程 invoke_Java中Method的Invoke方法详细介绍
这篇文章主要介绍了详解Java中Method的Invoke方法,需要的朋友可以参考下 在写代码的时候,发现从父类class通过getDeclaredMethod获取的Method可以调用子类的对象,而 ...
- Java动态代理invoke方法自动执行的原因
Java动态代理invoke方法自动执行的原因 在动态代理中,一般的是先调用Proxy.newProxyInstance()生成代理对象,然后通过调用代理对象的对应方法来实现增强,这里假设代理了被代理 ...
- Method的invoke方法初步了解
Java调试过程中,我们有时候会需要对JVM运行过程中哪出了问题进行调试,先从最基础的了解. 我们都知道Java框架中方法的调用基本上都是通过反射机制来实施的,具体流程如下: 1.方法的调用先检查Ac ...
- java 反射之invoke方法图解
invoke方法的过程: 深入解析Java反射(2) - invoke方法
- Method的invoke()方法的使用
public Object invoke(Object obj,Object... args)throws IllegalAccessException,IllegalArgumentExceptio ...
- java invoke 方法说明_java中的反射,invoke方法
invoke,就是通过函数名反射调用相应的函数.以下代码简单地介绍了java反射中invoke方法 package org.curry.tool; import java.lang.reflect.M ...
- Java反射中method.isBridge() 桥接方法
Java反射中method.isBridge() 桥接方法 桥接方法是 JDK 1.5 引入泛型后,为了使Java的泛型方法生成的字节码和 1.5 版本前的字节码相兼容,由编译器自动生成的方法.我们可 ...
最新文章
- 慎重选型:PG还是MySQL?Uber的案例不能作为参考!
- 【多线程】ThreadPoolExecutor类万字源码解析(注解超级详细)
- RUP大讲堂(第五讲)-基于用例的需求工程技术
- win7的配置要求详解
- oracle数据库编码
- 实现lightbox效果
- 软件相貌测试准确吗,测另一半的相貌超准软件 提前了解对象的外貌
- 从一份外卖报告折射出的就业新选择
- [应用推荐]FreeMind自动生成系统盘的树状图(思维导图)
- C++正则表达式regex库使用方法总结
- 计算机电子电路原理图,简易电子琴设计电路图大全(八款模拟电路设计原理图详解) - 消费类电子电路图...
- 缓存篇(二)- JetCache
- table(单击行,把当行的单选按钮(radio)设为选中状态,并应用当前样式)
- css使两个盒子并列_盒子模型(重点)
- Exchange server 2010系列教程之九 配置exchange server 2010 OWA(3)
- Windows目录结构、移动、复制、搜索文件及文件夹等
- modbus 调试经验
- 宏观看红蓝对抗与渗透测试
- vfp中一些语法、关键字和控件属性
- 总结-Java分布式概念简述