zoukankan      html  css  js  c++  java
  • javaBean与map类型相互转换

    /**
    * 把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;
    }
  • 相关阅读:
    单片机学习01__跑起你的流水灯
    python2与python3共存
    rpi-kali 搭建网络靶场
    P3388 【模板】割点(割顶)
    P3387 【模板】缩点
    P1069 细胞分裂
    The Unique MST[不严格的次小生成树]
    P3369 【模板】普通平衡树
    Netty的线程模型可不是Reactor这么简单
    SpringBoot+Mybatis+MySQL实现读写分离
  • 原文地址:https://www.cnblogs.com/huaxingtianxia/p/6073606.html
Copyright © 2011-2022 走看看