A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 敷衍ゝ微笑掩盖 初级黑马   /  2014-7-1 13:45  /  819 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

------- <a  target="blank">android培训</a>、<a  target="blank">java培训</a>、期待与您交流! ---------
Javabean是一种特殊的java类,主要用于传递信息,且它的方法符合某种命名规则。Javabean的属性是根据其中的setter和getter方法来确定的,而不是成员变量。去掉set前缀剩下的部分的第二个字母是小写,把前一个字母变小写就是属性名,否则剩下部分直接是属性名。
如:   setId    属性id
      setCPU  属性CPU
总是,一个类被当做是javabean使用时,javabean的属性是根据方法名推出来的,与内部成员变量无关。
操作javabean中的api就是内省。
① 获得属性值。
第一种方式
ReflectPoint pt1 = new ReflectPoint(3,5);
String  propertyName=“x”;
PropertyDescriptor pd = new PropertyDescriptor(propertyName, pt1.getClass());//获得某类的某个属性。
Method methodGetX=pd.getReadMethod();//获得该属性的read方法
Object retVal = methodGetX.invoke(pt1);//调用某个类的该属性read方法。
System.out.println(retVal);
     第二种方式
        BeanInfo beanInfo=Introspector.getBeanInfo(pt1.getClass());//根据某类获得该类的BeanInfo

        PropertyDescriptor[]  pds = beanInfo.getPropertyDescriptors();//获得该beanInfo的所有属性

For( PropertyDescriptor pd :pds){
If(pd.getName().equals(propertyName)){
Method methodGetX=pd.getReadMethod();//获得该属性的read方法
Object retVal = methodGetX.invoke(pt1);//调用某个类的该属性read方法。
System.out.println(retVal);

}
}

② 设置属性值。
Method methodSetX=pd.getWriteMethod();//获得某属性的set方法。
methodSetX.invoke(pt1,7);//调用某类的该set方法
System.out.println(pt1.getX());

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马