beanUtils,实体bean工具类,beanutilsbean,package com.
分享于 点击 49398 次 点评:112
beanUtils,实体bean工具类,beanutilsbean,package com.
package com.fsti.template.excel.util;import java.beans.BeanInfo;import java.beans.Introspector;import java.beans.PropertyDescriptor;import java.lang.reflect.Method;import java.util.HashMap;import java.util.Map;import com.fsti.template.util.DateFormat;import com.fsti.template.util.DateUtils;public class BeanUtils { public static Map<String, Object> backupProp(Object bean){ Map<String, Object> result = new HashMap<String, Object>(); try{ 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){ e.printStackTrace(); } return result; } public static void restoreProp(Object bean, Map<String, Object> propMap){ try { BeanInfo beanInfo = Introspector.getBeanInfo(bean.getClass()); PropertyDescriptor[] descriptors = beanInfo.getPropertyDescriptors(); for(PropertyDescriptor des: descriptors){ String fieldName = des.getName(); Class<?> type = des.getPropertyType(); if(propMap.containsKey(fieldName)){ Method setter = des.getWriteMethod(); String fieldValue = (String)propMap.get(fieldName); javaSet(type, setter, bean, fieldValue); } } } catch (Exception e) { e.printStackTrace(); } } public static void clear(Map<String, Object> propMap) { if(propMap != null) propMap.clear(); } private static void javaSet(Class<?> type,Method setter,Object bean,String fieldValue) throws Exception { Object value = null; if ("java.util.Date".equals(type.getName())) { if(fieldValue != null) value = DateUtils.parse(fieldValue, DateFormat.YYYY_MM_DD_HH_MM_SS); }else if ("java.lang.Double".equals(type.getName())) { if(fieldValue != null) value = Double.valueOf(fieldValue); else value = Double.valueOf("0"); } else if ("java.lang.Integer".equals(type.getName())) { if(fieldValue != null) { if(fieldValue.lastIndexOf(".") > 0) value = Integer.valueOf(fieldValue.substring(0, fieldValue.lastIndexOf("."))); else value = Integer.valueOf(fieldValue); }else value = Integer.valueOf("0"); } else if ("java.lang.Long".equals(type.getName())) { if(fieldValue != null){ if(fieldValue.lastIndexOf(".") > 0) value = Long.valueOf(fieldValue.substring(0, fieldValue.lastIndexOf("."))); else value = Long.valueOf(fieldValue); }else value = Long.valueOf("0"); } else if("java.lang.String".equals(type.getName())){ value = fieldValue; } else if("int".equals(type.getName())) { if(fieldValue != null) { if(fieldValue.lastIndexOf(".") > 0) value = Integer.valueOf(fieldValue.substring(0, fieldValue.lastIndexOf("."))).intValue(); else value = Integer.valueOf(fieldValue).intValue(); }else value = Integer.valueOf("0").intValue(); } else if("long".equals(type.getName())) { if(fieldValue != null) { if(fieldValue.lastIndexOf(".") > 0) value = Long.valueOf(fieldValue.substring(0, fieldValue.lastIndexOf("."))).longValue(); else value = Long.valueOf(fieldValue).longValue(); }else value = Long.valueOf("0").longValue(); } else if("double".equals(type.getName())) { if(fieldValue != null) value = Double.valueOf(fieldValue).doubleValue(); else value = Double.valueOf("0").doubleValue(); } setter.invoke(bean, new Object[]{value}); }}//该片段来自于http://byrx.net
用户点评