package com.cheng.zenofdesignpatterns.patterns.memento.multistate; import java.util.HashMap; /** * JavaBean和Map互转 */ public class BeanUtils { // 把bean的所有属性及数值放入到Hashmap中 public static HashMap<String,Object> backupProp(Object bean){ HashMap<String,Object> result = new HashMap<String,Object>(); /*try { // 获得Bean描述 BeanInfo beanInfo = Introspector.getBeanInfo(bean.getClass()); // 获得属性描述 PropertyDescriptor[] descriptors = beanInfo.getPropertyDescriptors(); // 遍历所有属性 for(PropertyDescriptor des:descriptors){ // 属性名称 String fieldName = des.getName(); //读取属性的方法 Method getter = des.getReadMethod(); // 读取属性值 Object fieldValue = getter.invoke(bean, new Object[]{}); if(!fieldName.equalsIgnoreCase("class")){ result.put(fieldName, fieldValue); } } } catch (Exception e) { // 异常处理 }*/ return result; } // 把HashMap的值返回到bean中 public static void restoreProp(Object bean,HashMap<String,Object> propMap){ /*try { // 获得Bean描述 BeanInfo beanInfo = Introspector.getBeanInfo(bean.getClass()); // 获得属性描述 PropertyDescriptor[] descriptors = beanInfo.getPropertyDescriptors(); // 遍历所有属性 for(PropertyDescriptor des:descriptors){ //属性名称 String fieldName = des.getName(); // 如果有这个属性 if(propMap.containsKey(fieldName)){ // 写属性的方法 Method setter = des.getWriteMethod(); setter.invoke(bean, new Object[]{propMap.get(fieldName)}); } } } catch (Exception e) { // 异常处理 System.out.println("shit"); e.printStackTrace(); }*/ } }