美文网首页
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 的属性自省

    首先我们要知道什么是javabean,而属性指的是什么 ? javabean可以理解是一种规范,编码要有一定的规范...

  • Java 基础 51 JavaBean的概述及其BeanUti

    1.1 JavaBean的概述和规范 JavaBean的概述:将需要操作的多个属性封装成JavaBean 简单来说...

  • Java内省机制(Introspector)

    内省 通过反射的方式操作 JavaBean 的属性内省基于反射实现,主要用于操作JavaBean,Introspe...

  • Json

    Json与javabean转化 json如下,主要是包括对象,还有数组,对象属性之间用逗号隔开 javabean对...

  • 使用BeanUtils.copyProperties()快速拷贝

    目的 一个JavaBean通常包含了大量的属性,很多情况下,对JavaBean的处理导致大量get/set代码堆积...

  • 了解JavaBean

    1.什么是JavaBean JavaBean是基于Java的组件模型,由属性、方法和事件3部分组成。在该模型中,J...

  • javaBean的四个作用域范围

    说明:使用当前useBeans的scope属性可以用来指定javabean的作用范围

  • 中级17 - Spring IoC容器原理与手写简单实现

    一切开始之前,先了解下 JavaBean 是什么,它是一种标准和约定。一个 JavaBean: 所有的属性都是 p...

  • JavaWeb - JavaBean

    JavaBean 实体类JavaBean 有特定的写法: 必须要有一个无参构造 属性必须私有化 必须有对应的get...

  • JavaWeb之JavaBean

    九、JavaBean 实体类JavaBean有特定的写法:①必须要有一个无参构造②属性必须私有化③必须有对应的ge...

网友评论

      本文标题: JavaBean 的属性自省

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