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