Map与 Object转换
来源:互联网 发布:网络借贷办法 编辑:程序博客网 时间:2024/05/06 11:24
Map与 Object互相转换的三种方式
不知道从哪里看到的,写成博客记录下,防止以后忘记
使用org.apache.commons.beansutils进行转换
public static Object mapToObject(Map<String, Object> map, Class<?> beanClass) throws Exception { if (map == null) return null; Object obj = beanClass.newInstance(); org.apache.commons.beanutils.BeanUtils.populate(obj, map); return obj; } public static Map<?, ?> objectToMap(Object obj) { if(obj == null) return null; return new org.apache.commons.beanutils.BeanMap(obj); }
使用java.beans.Introspector进行转换
public static Object mapToObject(Map<String, Object> map, Class<?> beanClass) throws Exception { if (map == null) return null; 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 && map.containsKey) { setter.invoke(obj, map.get(property.getName())); } } return obj; } public static Map<String, Object> objectToMap(Object obj) throws Exception { if(obj == null) return null; Map<String, Object> map = new HashMap<String, Object>(); BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass()); PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors(); for (PropertyDescriptor property : propertyDescriptors) { String key = property.getName(); if (key.compareToIgnoreCase("class") == 0) { continue; } Method getter = property.getReadMethod(); Object value = getter!=null ? getter.invoke(obj) : null; map.put(key, value); } return map; }
使用reflect
public static Object mapToObject(Map<String, Object> map, Class<?> beanClass) throws Exception { if (map == null) return null; Object obj = beanClass.newInstance(); Field[] fields = obj.getClass().getDeclaredFields(); for (Field field : fields) { int mod = field.getModifiers(); if(Modifier.isStatic(mod) || Modifier.isFinal(mod)){ continue; } field.setAccessible(true); field.set(obj, map.get(field.getName())); } return obj; } public static Map<String, Object> objectToMap(Object obj) throws Exception { if(obj == null){ return null; } Map<String, Object> map = new HashMap<String, Object>(); Field[] declaredFields = obj.getClass().getDeclaredFields(); for (Field field : declaredFields) { field.setAccessible(true); map.put(field.getName(), field.get(obj)); } return map; }
阅读全文
0 0
- Map与 Object转换
- Map与Object之间的转换
- Java Object与Map对象相互转换
- javaBean与Map<String,Object>相互转换
- Map/Object相互转换
- Map与Object互转
- java Map与Object互转
- java中Array/List/Map/Object与Json互相转换详解
- java中Array/List/Map/Object与Json互相转换详解
- java中Array/List/Map/Object与Json互相转换详解
- java中Array/List/Map/Object与Json互相转换详解
- java中Array/List/Map/Object与Json互相转换详解
- java中Array/List/Map/Object与Json互相转换详解
- java中Array/List/Map/Object与Json互相转换详解
- java中Array/List/Map/Object与Json互相转换详解
- 简单的java 反射机制实践 map 与object对象的转换
- java中Array/List/Map/Object与Json互相转换详解
- java中Array/List/Map/Object与Json互相转换详解
- nginx location的配置
- Python安装
- 猜年龄
- spring执行同步任务和异步任务
- MariaDB Galera Cluster 部署(如何快速部署MariaDB集群)
- Map与 Object转换
- WGS84坐标系下大地坐标转换为空间直角坐标
- JSON.tringify(results)的前后比较
- __set() __get() 方法详解
- ACM复习(11)8615 快乐
- tomcat 文件夹设置目录浏览模式
- C++ 中string 的集成学习(1)
- 堆申请的三种alloc用法
- mysql与oracle