java反射Method中的如何调用任意方法,即invoke()的使用
来源:互联网 发布:联想yoga11s 编程 编辑:程序博客网 时间:2024/05/29 04:35
今天碰到了一个关于java反射中的Method中invoke(Object,Object...args);的使用问题,这就涉及到了反射中如何去利用这个方法去调用一个类中任意方法的问题,包括类中的静态和非静态方法,有参方法和无参的方法,经过分析总结了一些心得分享出来。
public class TestMethod { public static void show(int a,int b,int c){System.out.println("这个静态方法有参数,功能是输出a,b,c的值");System.out.println(a);System.out.println(b);System.out.println(c);System.out.println(); } public static void show(){System.out.println("这个静态方法没有参数。。。。");System.out.println(); } public void show(String str){System.out.println("这是一个 非静态 方法。功能是输出str的值。");System.out.println("str = "+str);System.out.println(); } public static void fun(Method method0,Method method1,TestMethod tm ,Method method2){try { method1.invoke(null, null);//对于静态方法第一个参数需要写null,第二个参数其实是一个Class<T>的数组,如果是无参的方法就写null method0.invoke(null,1,2,3);//第一个参数同上,第二个参数中,函数原型有几个参数,就对应传入几个对应类型的参数 method2.invoke(tm, "一个参数,字符串而已");//因为method2不是一个静态方法,这时候第一个参数传入调用该方法的对象,第二个参数传入一个字符串 } catch (IllegalAccessException e) { e.printStackTrace();} catch (IllegalArgumentException e) { e.printStackTrace();} catch (InvocationTargetException e) { e.printStackTrace();} } public static void main(String[] args) throws Exception {Method show0 = TestMethod.class.getMethod("show",int.class,int.class,int.class);//这个方法有参数的话就写上的参数类型的class.Method show1 = TestMethod.class.getMethod("show",null);//倘若 没有参数,就写nullMethod show2 = TestMethod.class.getMethod("show", String.class);//获取这个show方法,方法的参数类型是String类型的TestMethod tm = new TestMethod();fun(show0,show1,tm,show2); }}瑾提供给需要的帮助的人参考学习,大神请忽略。
0 0
- java反射Method中的如何调用任意方法,即invoke()的使用
- java中的反射--method的invoke方法
- java 反射中的method.invoke()方法详解
- Java 反射 ,Method的invoke()方法的使用
- 使用java反射中的getMethod,invoke方法调用对象方法的实例
- java反射机制之Method invoke执行调用方法例子
- java反射机制之Method invoke执行调用方法例子
- java反射机制之Method invoke执行调用方法例子
- java反射机制之Method invoke执行调用方法例子
- java反射中Method类invoke方法的用法
- Java反射中Method类invoke方法的用法
- Java反射中Method类invoke方法的用法
- java反射中Method类invoke方法的用法
- Java反射中Method类invoke方法的用法
- Java反射中Method类invoke方法的用法
- Java反射中Method类invoke方法的用法
- java反射中Method类invoke方法的用法
- java反射中Method类invoke方法的用法
- 基于laravel5.2的开源cms系统Lava Lite安装步骤
- 指针变量
- Timer/TimerTask与ScheduledExecutorService
- iOS :编译时易出现的错误(持续更新)
- iptables & ebtables 默认表名
- java反射Method中的如何调用任意方法,即invoke()的使用
- Android产品研发(七)-->Apk热修复
- 搭建微信公共平台的本地测试
- activemq 控制面板里的 Number Of Pending Messages、 Messages Enqueued、Messages Dequeued含义
- noip2015 信息传递
- Nginx多Server反向代理配置
- Android a应用打开b应用
- 临时
- Fragment的添加步骤