javaEE培训 Java内省机制

栏目:经验分享丨时间:07-04丨来源:未知丨作者:光环IT学院
  javaEE培训是光环it学院比较火热的一门课程之一,javaEE培训的讲师均为有多年开发经验的讲师,面对面教学,保障学员学习期间能学到实用的技能、毕业后就业无忧!

javaEE培训
 
  javaEE培训的讲师认为,内省(Introspector)是Java语言对Bean类属性、事件的一种缺省处理方法。例如类A中有属性name,那我们可以通过getName(),setName()来得到其值或者设置新的值。通过getName/setName来访问name属性,这就是默认的规则。Java中提供了一套API用来访问某个属性的getter/setter方法,通过这些API可以使你不需要了解这个规则,这些API存放于包java.beans中。

  一般的做法是通过类Introspector来获取某个对象的BeanInfo信息,然后通过BeanInfo来获取属性的描述器(PropertyDescriptor),通过这个属性描述器就可以获取某个属性对应的getter/setter方法,然后我们就可以通过反射机制来调用这些方法。

  其中,BeanInfo类是JavaBean的信息类,而BeanInfo类是通过Introspector类调用相关方法获得的,下面我们通过帮助文档来查看Introspector类:

  javaEE培训的讲师认为,Introspector类调用静态的getBeanInfo(Class<?>clz)方法就可以获得一个BeanInfo类型的对象,其中该方法的参数是javaBean的Class对象。

  现在在该帮助文档中查看BeanInfo类。

  BeanInfo类一共有八个方法,其中有个方法是getIcon(inticonKind),在学习JavaBean时,我们说过JavaBean分两种,有一种是有用户界面的JavaBean,那么这个方法就是获取界面中JavaBean的图像对象。而用红色框标注的两个方法是我们重点学习的方法,如下:

  MethodDescriptor[]getMethodDescriptors():

  该方法返回的是描述受此JavaBean支持的扩展可见方法的MethodDescriptor数组

  PropertyDescriptor[]getPropertyDescriptors():

  javaEE培训的讲师认为,该方法返回的是描述受此JavaBean支持的可编辑属性的PropertyDescriptor数组。

  现在我们再来看看MethodDescriptor和PropertyDescriptor,首先了解MethodDescriptor类有哪些方法,如图1-3所示:

  红色方框标注的两个方法比较常用,分别用来获得读属性的方法和写属性的方法,获得了读写方法的Method类型的对象,就可以利用反射实现操作和读取属性值的功能。

  通过对以上几个类的分析,下面通过一张图来了解实现内省的步骤,如图1-5所示:

  javaEE培训的讲师认为,当获得属性的读写方法对应的Method对象后,就可以利用反射实现对属性的操作。

  javaEE培训,就选光环it学院!

  原创文章,转载请注明出处:光环it学院

光环IT学院,专注IT培训16年,培养IT行业精英! —

光环IT学院

注:本站文章采用原创+网络转载两个方式,对于转载的文章,由于网络信息过多,无法100%找到原始出处。如果本站文章有侵犯了您的权益,请联系我们删除或授权。

请遵守理性,宽容,换位思考的原则

2017-07-04 13:21 发布 丨 人浏览

热点推荐

微信
公众号

微信扫码,即可关注

反馈
意见
回到
顶部