- 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://www.codesnippet.cn/detail/251220138223.html
来源: http://www.codesnippet.cn/detail/251220138223.html