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;
    }
    }

  • 相关阅读:
    Flask websocket
    Vuex
    Web框架的原理
    node.js
    nginx负载均衡实验
    nginx与location语法详解
    git安装与初始化
    Flask 中的 Render Redirect HttpResponse
    jQuery快速入门
    前端知识总结--css用div画环形圆
  • 原文地址:https://www.cnblogs.com/xxj-bigshow/p/7601797.html
Copyright © 2011-2022 走看看