美文网首页
JavaBean 的属性自省

JavaBean 的属性自省

作者: IssAc78 | 来源:发表于2016-08-01 01:42 被阅读57次

    首先我们要知道什么是javabean,而属性指的是什么 ?

    javabean可以理解是一种规范,编码要有一定的规范,不然别人很难维护你的代码

    属性就是一个类中的getter setter方法,(狭义理解)。如果一个成员变量有getter setter方法,我们
    可以说这个成员变量就是属性。

    属性是如何自省的?

    自省,听起来跟 反射的自省差不多,其实很相似。大家都是通过字节码来映射出自身的元素!

    反射映射出整个类,属性自省就映射出属性的全部,就是名字,getter 和setter 方法

    自省用Introspector 类来描述,自省这个功能 ,能把 自己的属性打包好拿,得到一个BeanInfo接口的实例

    BeanInfo info = Introspector.getBeanInfo(Person.class,Object.class)

    因为要自省,所以要加入自己的字节码,后面的是父类字节码,如果不加,父类的属性class也会获取到!
    最好不要,因为没有,而且拿了有时会出现很多问题

    得到的BeanInfo还不能直接用,因为里面有很多属性打包在一起,我要用要属性描述器PropertyDescriptor

    这个描述器可以把一个属性的信息出拿出来,

    PropertyDescriptor [ ] pds = info.PropertyDescriptors( );

    循环迭代,把每个属性的描述器拿出来

    得到后,就可以获取属性的东西

    Method m = pd.getWriteMethod( ); 相当于getter方法

    Method m1 = pd.getReadMethod ( ); 相当于setter方法

    String name = pd.getName ( );

    相关文章

      网友评论

          本文标题: JavaBean 的属性自省

          本文链接:https://www.haomeiwen.com/subject/unjxsttx.html