博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
004 方法反射
阅读量:4654 次
发布时间:2019-06-09

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

我们实现一个方法的反射.

User类:

public class User {    private String name;    @Override    public String toString() {        return "User [name=" + name + "]";    }        public String say(String str) {        return name+ " say " + str;    }}

我们实现的方法调用:

User user = User.class.newInstance();        Field name = User.class.getDeclaredField("name");        //由于这个属性时私有的,需要重新设置访问权限        name.setAccessible(true);        name.set(user, "trek");        //获取方法        Method method = User.class.getDeclaredMethod("say", String.class);        //实现方法的调用        String retval = (String) method.invoke(user, "今天不错");        System.out.println(retval);

现在我们实现了方法的调用.


 

在这里我们总结一下反射的基本使用结构:

[1]获取Class对象

[2]获得Constructor Field Method 对象

[3]通过获取的这一些反射附属的对象,进行使用.

另外,还有package annotation 等元素.

使用方式也基本一致.

转载于:https://www.cnblogs.com/trekxu/p/8595628.html

你可能感兴趣的文章
printf格式输出
查看>>
Modbus通讯协议
查看>>
Modbus教程| Modbus协议,ASCII和RTU帧,Modbus工作
查看>>
Modbus协议深入讲解_NI
查看>>
stm32——modbus例程网址收藏
查看>>
vscode+TCC快捷编译c语言
查看>>
FreeRTOS 任务栈大小确定及其溢出检测
查看>>
FreeRTOS任务优先级说明
查看>>
单片机的栈
查看>>
IAR astyle代码美化
查看>>
推荐一些网站给大家
查看>>
单向可控硅(SCR)双向可控硅(TRIAC)
查看>>
再论i++ ++i
查看>>
表达式* ptr ++和++ * ptr是否相同?
查看>>
c语言中的数据变量类型,大小
查看>>
C语言里面"具有外部链接的静态变量"这里的"链接"是什么意思
查看>>
正则表达式,删除空行,删除特定字符所在行
查看>>
IAR平台移植TI OSAL到STC8A8K64S4A12单片机中
查看>>
c语言定义的几种易错的说明
查看>>
Socket网络编程(TCP/IP/端口/类)和实例
查看>>