2022年JAVA的内省机制与反射机制 .pdf
《2022年JAVA的内省机制与反射机制 .pdf》由会员分享,可在线阅读,更多相关《2022年JAVA的内省机制与反射机制 .pdf(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、JAVA的内省机制( introspector)与反射机制( reflection)2010-05-05 20:49 相对而言, 反射比内省更容易理解一点。用一句比较白的话来概括, 反射就是让你可以通过名称来得到对象 ( 类,属性,方法 ) 的技术,这种技术比内省机制使用范围更广泛。例如我们可以通过类名来生成一个类的实例;知道了方法名,就可以调用这个方法; 知道了属性名就可以访问这个属性的值。内省是 Java 语言对 Bean 类属性、事件的一种缺省处理方法。 例如类 A 中有属性 name, 那我们可以通过 getName,setName 来得到其值或者设置新的值。通过getName/set
2、Name 来访问 name 属性,这就是默认的规则。 Java 中提供了一套API 用来访问某个属性的 getter/setter 方法, 通过这些 API 可以使你不需要了解这个规则 (但你最好还是要搞清楚) ,这些 API 存放于包 java.beans 中。一般的做法是通过类 Introspector 来获取某个对象的 BeanInfo 信息,然后通过 BeanInfo 来获取属性的描述器 ( PropertyDescriptor ),通过这个属性描述器就可以获取某个属性对应的 getter/setter 方法,然后我们就可以通过反射机制来调用这些方法。 下面我们来看一个例子, 这个例子
3、把某个对象的所有属性名称和值都打印出来:Java 代码1. package MyTest; 2. publicclass bean 3.private String id = null ; 4.private String name = null ; 5.6.public String getId() 7.return id; 8. 9.publicvoid setId(String id) 10. this .id = id; 11. 12. 13. public String getName() 14. return name; 15. 16. publicvoid setName(Str
4、ing name) 17. this .name = name; 18. 19. 20. 21. package MyTest; 22. import java.beans.BeanInfo; 23. import java.beans.EventSetDescriptor; 24. import java.beans.Introspector; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 5 页 - - - - - - - - - 25. import java.b
5、eans.MethodDescriptor; 26. import java.beans.PropertyDescriptor; 27. import java.lang.reflect.Method; 28. publicclass myBeanIntrospector 29. public myBeanIntrospector() 30. 31. try32. 33. / 实例化一个 Bean 34. bean beanObj = new bean(); 35. / 依据 Bean产生一个相关的BeanInfo 类36. BeanInfo bInfoObject = 37. Introsp
6、ector.getBeanInfo(beanObj.getClass(),beanObj.getClass().getSuperclass(); 38. / 定义一个用于显示的字符串39. String output = ; 40. 41. / 开始自省42. 43. /* 44. * BeanInfo.getMethodDescriptors() 45. * 用于获取该 Bean中的所有允许公开的成员方法,以MethodDescriptor数组的形式返回46. * 47. * MethodDescriptor类48. * 用于记载一个成员方法的所有信息49. * MethodDescript
7、or.getName() 50. * 获得该方法的方法名字51. * MethodDescriptor.getMethod() 52. * 获得该方法的方法对象( Method 类)53. * 54. * Method类55. * 记载一个具体的的方法的所有信息56. * Method.getParameterTypes() 57. * 获得该方法所用到的所有参数,以Class 数组的形式返回58. * 59. * Class.getName() 60. * 获得该类型的名字61. */62. output = 内省成员方法: n ; 63. MethodDescriptor mDescArr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年JAVA的内省机制与反射机制 2022 JAVA 内省 机制 反射
限制150内