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方法相关推荐

  1. JAVA深入研究——Method的Invoke方法。

    在写代码的时候,发现Method可以调用子类的对象,但子类即使是改写了的Method,方法名一样,去调用父类的对象也会报错,虽然这是很符合多态的现象,也符合java的动态绑定规范,但还是想弄懂java ...

  2. java中的invoke方法_详解Java中Method的Invoke方法

    在写代码的时候,发现从父类class通过getDeclaredMethod获取的Method可以调用子类的对象,而子类改写了这个方法,从子类class通过getDeclaredMethod也能获取到M ...

  3. java教程 invoke_Java中Method的Invoke方法详细介绍

    这篇文章主要介绍了详解Java中Method的Invoke方法,需要的朋友可以参考下 在写代码的时候,发现从父类class通过getDeclaredMethod获取的Method可以调用子类的对象,而 ...

  4. Java动态代理invoke方法自动执行的原因

    Java动态代理invoke方法自动执行的原因 在动态代理中,一般的是先调用Proxy.newProxyInstance()生成代理对象,然后通过调用代理对象的对应方法来实现增强,这里假设代理了被代理 ...

  5. Method的invoke方法初步了解

    Java调试过程中,我们有时候会需要对JVM运行过程中哪出了问题进行调试,先从最基础的了解. 我们都知道Java框架中方法的调用基本上都是通过反射机制来实施的,具体流程如下: 1.方法的调用先检查Ac ...

  6. java 反射之invoke方法图解

    invoke方法的过程: 深入解析Java反射(2) - invoke方法

  7. Method的invoke()方法的使用

    public Object invoke(Object obj,Object... args)throws IllegalAccessException,IllegalArgumentExceptio ...

  8. java invoke 方法说明_java中的反射,invoke方法

    invoke,就是通过函数名反射调用相应的函数.以下代码简单地介绍了java反射中invoke方法 package org.curry.tool; import java.lang.reflect.M ...

  9. Java反射中method.isBridge() 桥接方法

    Java反射中method.isBridge() 桥接方法 桥接方法是 JDK 1.5 引入泛型后,为了使Java的泛型方法生成的字节码和 1.5 版本前的字节码相兼容,由编译器自动生成的方法.我们可 ...

最新文章

  1. 慎重选型:PG还是MySQL?Uber的案例不能作为参考!
  2. 【多线程】ThreadPoolExecutor类万字源码解析(注解超级详细)
  3. RUP大讲堂(第五讲)-基于用例的需求工程技术
  4. win7的配置要求详解
  5. oracle数据库编码
  6. 实现lightbox效果
  7. 软件相貌测试准确吗,测另一半的相貌超准软件 提前了解对象的外貌
  8. 从一份外卖报告折射出的就业新选择
  9. [应用推荐]FreeMind自动生成系统盘的树状图(思维导图)
  10. C++正则表达式regex库使用方法总结
  11. 计算机电子电路原理图,简易电子琴设计电路图大全(八款模拟电路设计原理图详解) - 消费类电子电路图...
  12. 缓存篇(二)- JetCache
  13. table(单击行,把当行的单选按钮(radio)设为选中状态,并应用当前样式)
  14. css使两个盒子并列_盒子模型(重点)
  15. Exchange server 2010系列教程之九 配置exchange server 2010 OWA(3)
  16. Windows目录结构、移动、复制、搜索文件及文件夹等
  17. modbus 调试经验
  18. 宏观看红蓝对抗与渗透测试
  19. vfp中一些语法、关键字和控件属性
  20. 总结-Java分布式概念简述

热门文章

  1. 华为手机微信分身已下载文件如何拷贝,导出已下载文件
  2. ekho tts 下载_TTS技术简单介绍和Ekho(余音)TTS的安装与编程 | 学步园
  3. 互联网+ 与智能xxx、智慧xxx
  4. idea基本用法与插件介绍
  5. java多线程之并行和并发
  6. python中的多态和鸭子模型
  7. Vue: v-html
  8. 银行卡开户银行、名称缩写等信息查询
  9. centos os u盘启动盘_centos7制作U盘启动盘
  10. win10家庭版锁屏图片无法修改一直转圈圈(解决方案)