zoukankan      html  css  js  c++  java
  • Bean和Map之间的转换

    import java.beans.BeanInfo;

    import java.beans.IntrospectionException;
    import java.beans.Introspector;
    import java.beans.PropertyDescriptor;
    import java.lang.reflect.InvocationTargetException;
    import java.lang.reflect.Method;
    import java.util.HashMap;
    import java.util.Map;

    import org.apache.commons.beanutils.BeanUtils;//需要引入该jar包

    public class BeanMapUtil {

    //
    public static Object Map2Bean(Class type, Map map)
    throws IntrospectionException, IllegalAccessException,
    InstantiationException, InvocationTargetException {
    //TODO yefangwei
    // ConvertUtils.register(new DateConvert(), Date.class);

    BeanInfo beanInfo = Introspector.getBeanInfo(type);

    Object obj = type.newInstance();

    PropertyDescriptor[] propertyDescriptors = beanInfo
    .getPropertyDescriptors();

    for (int i = 0; i < propertyDescriptors.length; ++i) {
    PropertyDescriptor descriptor = propertyDescriptors[i];
    String propertyName = descriptor.getName();
    if (!(map.containsKey(propertyName.toUpperCase())))
    continue;
    try {
    Object value = map.get(propertyName.toUpperCase());
    BeanUtils.setProperty(obj, propertyName, value);
    } catch (Exception e) {
    }
    }
    return obj;
    }

    //mybatis中传参可以用到

    public static Map bean2Map(Object bean) throws IntrospectionException,
    IllegalAccessException, InvocationTargetException {
    Class type = bean.getClass();
    Map returnMap = new HashMap();
    BeanInfo beanInfo = Introspector.getBeanInfo(type);

    PropertyDescriptor[] propertyDescriptors = beanInfo
    .getPropertyDescriptors();
    for (int i = 0; i < propertyDescriptors.length; ++i) {
    PropertyDescriptor descriptor = propertyDescriptors[i];
    String propertyName = descriptor.getName();
    if (!(propertyName.equals("class"))) {
    Method readMethod = descriptor.getReadMethod();
    Object result = readMethod.invoke(bean, new Object[0]);
    if (result != null)
    returnMap.put(propertyName, result);
    else {
    returnMap.put(propertyName, null);
    }
    }
    }
    return returnMap;
    }
    }

  • 相关阅读:
    java把集合数据写入txt文档
    eclipse 启动报内存溢出的问题out of memory!
    面向对象基础知识整理
    在不同环境下MD5加密相同字符串,密文不一样的问题
    氮化镓选型
    碳化硅选型
    DSP选型
    FPGA选型
    MCU选型
    正点原子
  • 原文地址:https://www.cnblogs.com/xxj-bigshow/p/7601797.html
Copyright © 2011-2022 走看看