Chinaunix首页 | 论坛 | 博客
  • 博客访问: 166056
  • 博文数量: 56
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 593
  • 用 户 组: 普通用户
  • 注册时间: 2014-02-18 09:59
文章分类

全部博文(56)

文章存档

2019年(1)

2018年(26)

2016年(1)

2015年(6)

2014年(22)

我的朋友

分类: Java

2014-10-19 02:01:00



点击(此处)折叠或打开

  1. class BeanUtils {
  2.     public static Map<String, Object> backupProp(Object bean){
  3.         Map<String, Object> result = new HashMap<String, Object>();
  4.         try{
  5.             BeanInfo beanInfo = Introspector.getBeanInfo(bean.getClass());
  6.             PropertyDescriptor[] descriptors = beanInfo.getPropertyDescriptors();
  7.             for(PropertyDescriptor des: descriptors){
  8.                 String fieldName = des.getName();
  9.                 Method getter = des.getReadMethod();
  10.                 Object fieldValue = getter.invoke(bean, new Object[]{});
  11.                 if(!fieldName.equalsIgnoreCase("class")){
  12.                     result.put(fieldName, fieldValue);
  13.                 }
  14.             }
  15.             
  16.         }catch(Exception e){
  17.             e.printStackTrace();
  18.         }
  19.         return result;
  20.     }
  21.     
  22.     public static void restoreProp(Object bean, Map<String, Object> propMap){
  23.         try {
  24.             BeanInfo beanInfo = Introspector.getBeanInfo(bean.getClass());
  25.             PropertyDescriptor[] descriptors = beanInfo.getPropertyDescriptors();
  26.             for(PropertyDescriptor des: descriptors){
  27.                 String fieldName = des.getName();
  28.                 if(propMap.containsKey(fieldName)){
  29.                     Method setter = des.getWriteMethod();
  30.                     setter.invoke(bean, new Object[]{propMap.get(fieldName)});
  31.                 }
  32.             }
  33.         } catch (Exception e) {
  34.             e.printStackTrace();
  35.         }
  36.     }
  37. }

阅读(1372) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~