反射内省JaveBean与简单工厂设计模式(三)

2014-11-24 09:39:54 · 作者: · 浏览: 14
c void propertyDescriptorDemo(ReflectDemo rfd) {

//牛逼的PropertyDescriptor类,可以对符合JavaBean属性的方法进行操作呢,直接得到getReadMethod与getWriteMethod
PropertyDescriptor pd = null ;

try {
pd = new PropertyDescriptor("name",rfd.getClass());
Class propClazz = pd.getPropertyType();
System.out.println("属性的类型为::"+propClazz.getName());

Method readMethod = pd.getReadMethod();
Method writeMethod = pd.getWriteMethod();

//调用读方法,读取目前name中的值
System.out.println("调用读方法,读name的值为::"+readMethod.invoke(rfd));

//调用写方法,设置name中的值
writeMethod.invoke(rfd, "lisi");
System.out.println("调用写方法,将name的值改变后为::"+rfd.getName());

} catch (IntrospectionException e) {
e.printStackTrace();
}catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}

}

--------------------------------------------------------------------------------------------------------