关于反射

反射的方法比较多,不过都遵循以下规律:

Method表示方法,Field表示成员变量,Constructor表示构造方法;后面加s表示一次获取多个。
因为java中允许有多个同名的方法(普通方法和构造方法),只要其传入参数的类型(包括)不同即可,所以在获取单个方法的时候,不光要指定方法的名称,还要指定参数的类型。

因为类中的成员如果public修饰符,外部不能直接访问,所以有Declared的方法是可以获取到public和非public的成员的。如果没有Declared则表明获取public的。详情如下:

 

一、getFields()与getDeclaredFields()

getFields()只能访问类中声明为公有的字段,私有的字段它无法访问

getDeclaredFields()能访问类中所有的字段,与public,private,protect无关

二、getMethods()与getDeclaredMethods()

getMethods()只能访问类中声明为公有的方法,私有的方法它无法访问,能访问从其它类继承来的公有方法

getDeclaredFields()能访问类中所有的字段,与public,private,protect无关,不能访问从其它类继承来的方法

三、getConstructors()与getDeclaredConstructors()

getConstructors()只能访问类中声明为public的构造函数

getDeclaredConstructors()能访问类中所有的构造函数,与public,private,protect无关

 

更详细关于反射的资料参照:http://www.cnblogs.com/qinbin/archive/2013/01/03/java-reflect.html

 

 

posted @   yejg1212  阅读(233)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端
点击右上角即可分享
微信分享提示