Reflection--获取运行时类的指定信息
来源:互联网 发布:精雕5.5软件下载 编辑:程序博客网 时间:2024/05/22 04:59
这里主要讲解获取运行时类的特定的属性和类的特定的方法:
获取运行时类的对象的属性:
getFields方法和getDeclardFields
结果:
对于获取到的属性的赋值:通过get和set方法
- 在Field中:
- public Object get(Object obj)取得指定对象obj上此Field的属性内容
- public void set(Object obj,Object value)设置指定对象obj上此Field的属性内容
注意:
person中我们对于私有的属性age的获取,我们是无法直接对age进行set和get的操作。
注:在类中属性都设置为private的前提下,在使用set()和get()方法时,首先要使用Field类中的setAccessible(true)方法将需要操作的属性设置为可以被外部访问。
publicvoid setAccessible(true)访问私有属性时,让这个属性可见。
本来age是person的私有属性,这是类的封装性(Public,private),但是现在我们打破了类的封装性。
通过反射调用类中指定的方法:
通过反射,调用类中的方法,通过Method类完成。步骤:
1.通过Class类的getMethod(Stringname,Class…parameterTypes)方法取得一个Method对象,并设置此方法操作时所需要的参数类型。这个是获取运行时类中声明为public的方法。
2.之后使用Object invoke(Object obj, Object[] args)进行调用,并向方法中传递要设置的obj对象的参数信息。
Invoke()说明:
说明:
1.Object 对应原方法的返回值,若原方法无返回值,此时返回null
2.若原方法若为静态方法,此时形参Object obj可为null
3.若原方法形参列表为空,则Object[] args为null
4.若原方法声明为private,则需要在调用此invoke()方法前,显式调用方法对象的setAccessible(true)方法,将可访问private的方法
结果:
我们在前面强调的运行时类是反射的基础。在这里应该可以体会出来了吧。如果没有运行时类,我们的这行属性,方法就没有办法获取。
- Reflection--获取运行时类的指定信息
- 运用Reflection技术获取运行时信息
- 反射(Reflection):运行期的类信息
- Reflection--运行时类的创建
- 使用PHP的反射Reflection获取对象信息
- Reflection--运行时对象的创建
- java 获取指定的信息
- 获取作业运行的信息
- 获取javaj运行时信息
- 获取运行时类的其它结构、调用指定的属性和方法
- VBS 获取指定电脑的部分信息...
- 获取指定网卡的网络信息
- 获取指定网站的访问信息
- 获取指定表述信息的串口号
- 27、获取运行时信息(包括运行时的service、运行任务、正在运行的进程信息)
- 获取正在运行的activity的信息
- 线程运行栈信息的获取
- 线程运行栈信息的获取
- BP神经网络
- Linux C Socket编程原理及简单实例
- 提交表单报400错误,提示 “您提交的数据无法验证”
- 【DP 训练】Stamps and Envelope Size, ACM/ICPC World Finals 1995, UVa242
- Patterns of Movement
- Reflection--获取运行时类的指定信息
- java构造函数
- 网站部署访问失败——防火墙端口开放问题
- ContentProvider和Uri详解
- Linux的历史
- 读取系统Provider不同内容的相关字段
- vue组件化项目实践
- spring重点总结
- 热门网络开源框架和图片开源框架的使用方法