| 
 
| ------- <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());
 | 
 |