1. 程式人生 > >Map轉實體類

Map轉實體類

public static Object map2Object(Map<String, Object> map, Class<?> beanClass) throws ServiceException {
    if (map == null) {
        return null;
}
    try {
        Object obj = beanClass.newInstance();
BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass());
PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
for (PropertyDescriptor property : propertyDescriptors) { Method setter = property.getWriteMethod(); if (setter != null) { Object temp = map.get(property.getName().toLowerCase()); if (temp != null) { if (property.getPropertyType().getName().equals(Date.class
.getName())) { setter.invoke(obj, DateUtil.StringToDate(temp.toString(), DateUtil.DateStyle.YYYY_MM_DD)); } else if (property.getPropertyType().getName().equals(Integer.class.getName())) { setter.invoke(obj, Verify.IsNullOrEmpty(temp.toString())?null: Integer.parseInt
(temp.toString())); } else if (property.getPropertyType().getName().equals(Double.class.getName())) { setter.invoke(obj, Double.parseDouble(temp.toString())); } else if (property.getPropertyType().getName().equals(Float.class.getName())) { setter.invoke(obj, Float.parseFloat(temp.toString())); } else if (property.getPropertyType().getName().equals(Long.class.getName())) { setter.invoke(obj, Long.parseLong(temp.toString())); } else if (property.getPropertyType().getName().equals(BigDecimal.class.getName())) { setter.invoke(obj, new BigDecimal(temp.toString())); } else if (property.getPropertyType().getName().equals(Short.class.getName())) { setter.invoke(obj, Short.parseShort(temp.toString())); } else { setter.invoke(obj, temp); } } } } return obj; } catch (Exception e) { throw new ServiceException("引數錯誤"); } }