黑马程序员技术交流社区

标题: 内省和反射的问题 [打印本页]

作者: 高丽华    时间: 2014-1-19 17:07
标题: 内省和反射的问题
自己看完了内省和反射就是有一点不清楚:内省与反射有什么关系?
内省有什么方法(除了set 和 get)??
求大神解答啊!!

作者: 高丽华    时间: 2014-1-19 17:54
为什么没有人来回答啊啊!!!大神们呢!!
作者: wodenhaowzg    时间: 2014-1-19 17:59
如果想获得某个对象的属性值,需要用反射的方式得到getXX
作者: 淡夜清风    时间: 2014-1-19 18:00
大神都不在吧。。我就说说我的理解吧。。

反射:一个类有多个组成部分,例如成员变量,方法,构造方法等。反射就是加载类,并解剖出类的各个组成部分。

为什么需要内省?(Introspector)
开发框架时,经常需要使用java对象的属性来封装程序的数据,每次都使用反射技术完成此类操作过于麻烦,所以sun公司开发了一套用于操作JavaBean的API,专门用于操作java对象的属性。
访问JavaBean属性的两种方式:
1、直接调用bean的setXXX或getXXX方法。

2、通过内省技术访问(java.beans包提供了内省的API),内省技术访问也提供了两种方式。
       (1)、通过PropertyDescriptor类操作Bean的属性。
      (2)、通过Introspector类获得Bean对象的 BeanInfo,然后通过 BeanInfo 来获取属性的描述器( PropertyDescriptor ),通过这个属性描述器就可以获取某个属性对应的 getter/setter 方法,然后通过反射机制来调用这些方法。

作者: wodenhaowzg    时间: 2014-1-19 18:01
不小心打断了。。。
如果想获得某个fangf对象的属性值,需要用反射的方式得到getXX方法,过程比较麻烦
内省应该就是这种反射过程的简化版吧。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2