博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java反射--方法反射的基本操作
阅读量:7110 次
发布时间:2019-06-28

本文共 1440 字,大约阅读时间需要 4 分钟。

方法的反射

1)如何获取某个方法

方法的名称和方法的参数列表才能唯一决定某个方法

2)方法反射的操作

method.invoke(对象,参数列表)

代码实例:

package com.reflect;import java.lang.reflect.Method;public class MethodDemo1 {        public static void main(String []args) throws Exception    {        /*         * 要获取print(int,int)方法         * 1,要获取方法,就是获取类的信息,获取类的信息,首先要获取类的类类型         * */        A a1=new A();        Class c=a1.getClass();        /*         * 2,获取方法  名称和列表参数决定         * getMethod获取的是public的方法         * getDeclaredMethod获取自己声明的方法         * */        //第一种方式:c.getMethod("print", new Class[] {int.class,int.class});        Method m=c.getMethod("print",int.class,int.class);        /*         * 方法的反射操作         * 方法的反射操作是用m对象来进行方法调用和a1.print调用效果完全相同         * 方法如果没有返回值返回null,有返回值返回具体的返回值给O,后续自己转型         * */        //第一种方式:Object o=m.invoke(a1, new Object[] {10,20});        Object o=m.invoke(a1,10,20);        System.out.println("=============================");                //按照第一个方法调用方式,调用第二个方法        Method m2=c.getMethod("print",String.class,String.class);        o=m2.invoke(a1,"hello","word");                //第三种无参数的方法调用        Method m3=c.getMethod("print");        o=m3.invoke(a1);    }}class A{        public void print(int a,int b)    {        System.out.println(a+b);    }    public void print(String a,String b)    {        System.out.println(a.toUpperCase()+","+b.toLowerCase());    }        public void print()    {        System.out.println("hello word");    }}

 

转载地址:http://imlhl.baihongyu.com/

你可能感兴趣的文章
GUI图形界面
查看>>
vue作用域插槽,你真的懂了吗?
查看>>
亮风台完成1.2亿元B+轮融资,加速AR平台商业化进程
查看>>
当提到“事件驱动”时,我们在说什么?
查看>>
PHP技术栈
查看>>
[译] 组件化开发利器:Web Components标准
查看>>
SpringBoot结合Mybatis注解开发
查看>>
JAVA 多用户商城系统b2b2c---配置中心和消息总线
查看>>
“Zilliqa生态构建资助金” 第二批参与项目介绍
查看>>
由“递归遍历二叉树”引发的思考
查看>>
HTTP长连接
查看>>
vue.js2.0 (简易)水果商城
查看>>
透视云原生热的背后
查看>>
一对一直播源码对整个行业的影响竟有这么大
查看>>
项目问题解决方案随笔
查看>>
Vue.js - Day1
查看>>
iview render的使用
查看>>
个人整合,java 通过aspose转PDF ,支持各种格式 JPG ,TXT, PPT, EXCEL, DOC 免费开箱即用版...
查看>>
如果使用Github管理代码的方式文章
查看>>
菜鸟成长之路 第二周
查看>>