• 技术文章 >Java >java教程

    javaBean与map类型相互转换

    高洛峰高洛峰2016-11-17 14:38:45原创649
    /**
    * 把Map键值对转化为javaBean对象
    * 
    * @param type
    * @param map
    * @return
    * @throws Exception
    */
    private Object transforMapToObject(Class<? extends Object> type, Map<String, String> map) throws Exception {
    BeanInfo beanInfo = Introspector.getBeanInfo(type); //获取类属性
    Object obj = type.newInstance(); //创建 JavaBean 对象
    //给 JavaBean对象的属性赋值
    PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
    for (int i = 0; i < propertyDescriptors.length; i++) {
    PropertyDescriptor descriptor = propertyDescriptors[i];
    String propertyName = descriptor.getName();
    if (map.containsKey(propertyName)) {
    try {
    Object value = map.get(propertyName);
    Object[] args = new Object[1];
    args[0] = value;
    descriptor.getWriteMethod().invoke(obj, args);
    } catch (Exception e) {
    e.printStackTrace();
    }
    }
    }
    return obj;
    }
    
    /**
    * 把javaBean对象转换为Map键值对
    * 
    * @param bean
    * @return
    * @throws Exception
    */
    private Map<String, String> transforObjectToMap(Object bean) throws Exception {
    Class<? extends Object> type = bean.getClass();
    Map<String, String> returnMap = new HashMap<String, String>();
    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.toString());
    }
    }
    }
    return returnMap;
    }
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:java
    上一篇:Android——Activity类 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • Java数据结构之单链表与OJ题• 一起来分析java设计模式之单例• 一文搞懂Java线程池实现原理• 详细介绍Java正则表达式之单字符匹配和预定义字符• Java总结分享之反射、枚举、Lambda表达式
    1/1

    PHP中文网