精华内容
下载资源
问答
  • java实体类转成Map

    万次阅读 2016-06-23 11:53:05
    实体类转成Map private static Logger LOGGER = LoggerFactory.getLogger(BeanUtils.class); // Bean --> Map 1: 利用Introspector和PropertyDescriptor 将Bean --> Map public static Map transBean2Map...


    将实体类转成Map


    	private static Logger LOGGER = LoggerFactory.getLogger(BeanUtils.class);
    
    	// Bean --> Map 1: 利用Introspector和PropertyDescriptor 将Bean --> Map
    	public static Map<String, Object> transBean2Map(Object obj) {
    		if (obj == null) {
    			return null;
    		}
    		Map<String, Object> map = new HashMap<String, Object>();
    		try {
    			BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass());
    			PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
    			for (PropertyDescriptor property : propertyDescriptors) {
    				String key = property.getName();
    				// 过滤class属性
    				if (!key.equals("class")) {
    					// 得到property对应的getter方法
    					Method getter = property.getReadMethod();
    					Object value = getter.invoke(obj);
    
    					map.put(key, value);
    				}
    
    			}
    		} catch (Exception e) {
    			LOGGER.error("transBean2Map Error {}" ,e);
    		}
    		return map;
    
    	}


    展开全文
  • Java实体类转MapMap转实体类

    千次阅读 2019-10-29 19:40:38
    1、创建entity(User.java) package com.jeff.entity; public class User { private String userName; private String password; private Integer age; public User() { super(); } public User(String...

    1、创建entity(User.java)

    package com.jeff.entity;
    
    public class User {
    
    	private String userName;
    	private String password;
    	private Integer age;
    
    	public User() {
    		super();
    	}
    
    	public User(String userName, String password, Integer age) {
    		super();
    		this.userName = userName;
    		this.password = password;
    		this.age = age;
    	}
    
    	public String getUserName() {
    		return userName;
    	}
    
    	public void setUserName(String userName) {
    		this.userName = userName;
    	}
    
    	public String getPassword() {
    		return password;
    	}
    
    	public void setPassword(String password) {
    		this.password = password;
    	}
    
    	public Integer getAge() {
    		return age;
    	}
    
    	public void setAge(Integer age) {
    		this.age = age;
    	}
    
    	@Override
    	public String toString() {
    		return "User [userName=" + userName + ", password=" + password + ", age=" + age + "]";
    	}
    
    }
    
    

    2、创建utils(EntityUtils.java)

    package com.jeff.utils;
    
    import java.lang.reflect.Field;
    import java.util.HashMap;
    import java.util.Map;
    
    public class EntityUtils {
    	/**
    	 * 
    	 * @description: 实体类转Map
    	 * @author: Jeff
    	 * @date: 2019年10月29日
    	 * @param object
    	 * @return
    	 */
    	public static Map<String, Object> entityToMap(Object object) {
    		Map<String, Object> map = new HashMap<>();
    		for (Field field : object.getClass().getDeclaredFields()) {
    			try {
    				boolean flag = field.isAccessible();
    				field.setAccessible(true);
    				Object o = field.get(object);
    				map.put(field.getName(), o);
    				field.setAccessible(flag);
    			} catch (Exception e) {
    				e.printStackTrace();
    			}
    		}
    		return map;
    	}
    
    	/**
    	 * 
    	 * @description: Map转实体类
    	 * @author: Jeff
    	 * @date: 2019年10月29日
    	 * @param <T>
    	 * @param map    需要初始化的数据,key字段必须与实体类的成员名字一样,否则赋值为空
    	 * @param entity 需要转化成的实体类
    	 * @return
    	 */
    	public static <T> T mapToEntity(Map<String, Object> map, Class<T> entity) {
    		T t = null;
    		try {
    			t = entity.newInstance();
    			for (Field field : entity.getDeclaredFields()) {
    				if (map.containsKey(field.getName())) {
    					boolean flag = field.isAccessible();
    					field.setAccessible(true);
    					Object object = map.get(field.getName());
    					if (object != null && field.getType().isAssignableFrom(object.getClass())) {
    						field.set(t, object);
    					}
    					field.setAccessible(flag);
    				}
    			}
    			return t;
    		} catch (InstantiationException e) {
    			e.printStackTrace();
    		} catch (IllegalAccessException e) {
    			e.printStackTrace();
    		}
    		return t;
    	}
    
    }
    
    

    3、创建Map转实体类(TestCopyObj3.java)

    package com.jeff;
    
    import java.util.HashMap;
    import java.util.Map;
    
    import com.jeff.entity.User;
    import com.jeff.utils.EntityUtils;
    
    public class TestCopyObj3 {
    
    	public static void main(String[] args) throws Exception {
    		Map<String, Object> map = new HashMap<String, Object>();
    		map.put("userName", "Jeff");
    		map.put("password", "123456");
    		map.put("age", 18);
    		System.out.println("Map对象:" + map);
    		User user = EntityUtils.mapToEntity(map, User.class);
    		System.out.println("User对象:" + user);
    	}
    
    }
    
    

    4、控制台输出结果
    在这里插入图片描述
    5、创建实体类转Map(TestCopyObj4.java)

    package com.jeff;
    
    import java.util.Map;
    
    import com.jeff.entity.User;
    import com.jeff.utils.EntityUtils;
    
    public class TestCopyObj4 {
    
    	public static void main(String[] args) throws Exception {
    		User user = new User("Jeff", "123456", 18);
    		System.out.println("User对象:" + user);
    		Map<String, Object> map = EntityUtils.entityToMap(user);
    		System.out.println("Map对象:" + map);
    	}
    
    }
    

    6、控制台输出结果
    在这里插入图片描述

    展开全文
  • package ...import java.beans.BeanInfo;import java.beans.IntrospectionException;import java.beans.Introspector;import java.beans.PropertyDescriptor;import java.lang.reflect.Field;import...
    package com.ruiguang.tools;


    import java.beans.BeanInfo;
    import java.beans.IntrospectionException;
    import java.beans.Introspector;
    import java.beans.PropertyDescriptor;
    import java.lang.reflect.Field;
    import java.lang.reflect.InvocationTargetException;
    import java.lang.reflect.Method;
    import java.lang.reflect.Modifier;
    import java.util.Date;
    import java.util.HashMap;
    import java.util.Map;


    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;


    public class JavaBeanUtil {
    private static Logger logger = LoggerFactory.getLogger(JavaBeanUtil.class);




        /**
         * 实体类转map
         * @param obj
         * @return
         */
        public static Map<String, Object> convertBeanToMap(Object obj) {
            if (obj == null) {
                return null;
            }
            Map<String, Object> map = new HashMap<String, Object>();
            try {
                BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass());
                PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
                for (PropertyDescriptor property : propertyDescriptors) {
                    String key = property.getName();
                    // 过滤class属性
                    if (!key.equals("class")) {
                        // 得到property对应的getter方法
                        Method getter = property.getReadMethod();
                        Object value = getter.invoke(obj);
                        if(null==value){
                            map.put(key,"");
                        }else{
                            map.put(key,value);
                        }
                    }




                }
            } catch (Exception e) {
                logger.error("convertBean2Map Error {}" ,e);
            }
            return map;
        }




        /**
         * map 转实体类
         * @param clazz
         * @param map
         * @param <T>
         * @return
         */
        public static <T> T convertMapToBean(Class<T> clazz, Map<String,Object> map) {
            T obj = null;
            try {
                BeanInfo beanInfo = Introspector.getBeanInfo(clazz);
                obj = clazz.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);
                        if ("".equals(value)) {
                            value = null;
                        }
                        Object[] args = new Object[1];
                        args[0] = value;
                        descriptor.getWriteMethod().invoke(obj, args);




                    }
                }
            } catch (IllegalAccessException e) {
                logger.error("convertMapToBean 实例化JavaBean失败 Error{}" ,e);
            } catch (IntrospectionException e) {
                logger.error("convertMapToBean 分析类属性失败 Error{}" ,e);
            } catch (IllegalArgumentException e) {
                logger.error("convertMapToBean 映射错误 Error{}" ,e);
            } catch (InstantiationException e) {
                logger.error("convertMapToBean 实例化 JavaBean 失败 Error{}" ,e);
            }catch (InvocationTargetException e){
                logger.error("convertMapToBean字段映射失败 Error{}" ,e);
            }catch (Exception e){
                logger.error("convertMapToBean Error{}" ,e);
            }
            return (T) obj;
        }
        //将map通过反射转化为实体
        public static   Object MapToModel(Map<String,Object> map,Object o) throws Exception{
            if (!map.isEmpty()) {
                for (String k : map.keySet()) {
                    Object v =null;
                    if (!k.isEmpty()) {
                        v = map.get(k);
                    }
                    Field[] fields = null;
                    fields = o.getClass().getDeclaredFields();
                    String clzName = o.getClass().getSimpleName();
                    for (Field field : fields) {
                        int mod = field.getModifiers();


                        if (field.getName().toUpperCase().equals(k.toUpperCase())) {
                            field.setAccessible(true);


                            //region--进行类型判断
                              String type=field.getType().toString();
                              if (type.endsWith("String")){
                                  if (v!=null){
                                      v=v.toString();
                                  }else {
                                      v="";
                                  }
                              }
                            if (type.endsWith("Date")){
                                v=new Date(v.toString());
                            }
                            if (type.endsWith("Boolean")){


                               v=Boolean.getBoolean(v.toString());
                            }
                            if (type.endsWith("int")){


                                v=new Integer(v.toString());
                            }
                            if (type.endsWith("Long")){


                                v=new Long(v.toString());
                            }






                            //endregion
                            field.set(o, v);


                        }


                    }


                }
            }
            return o;
        }
        /**
         * 实体对象转成Map
         * @param obj 实体对象
         * @return
         */
        public static Map<String, Object> object2Map(Object obj) {
            Map<String, Object> map = new HashMap<>();
            if (obj == null) {
                return map;
            }
            Class clazz = obj.getClass();
            Field[] fields = clazz.getDeclaredFields();
            try {
                for (Field field : fields) {
                    field.setAccessible(true);
                    map.put(field.getName(), field.get(obj));
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return map;
        }
        /**
         * Map转成实体对象
         * @param map map实体对象包含属性
         * @param clazz 实体对象类型
         * @return
         */
        public static Object map2Object(Map<String, Object> map, Class<?> clazz) {
            if (map == null) {
                return null;
            }
            Object obj = null;
            try {
                obj = clazz.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()));
                }
            } catch (Exception e) {
                e.printStackTrace();
            } 
            return obj;
        }
        
        public static void main(String[] args) {
        // TODO Auto-generated method stub
        /*Student s = new Student();
              s.setUserName("ZHH");
              s.setAge("24");
              System.out.println(object2Map(s));




              Map<String, Object> map = new HashMap<>();
              map.put("userName", "zhh");
              map.put("age", "24");
              System.out.println(map2Object(map, Student.class));*/
        }
        


    }
    展开全文
  • User为我们创建的一个用户实体类 现在我们要将用户集合中的用户名和密码转换为一个map getUserName和getPwd对应User实体类中的get方法的方法名 List<User> userList = new ArrayList<User>(); Map<...

    User为我们创建的一个用户实体类
    现在我们要将用户集合中的用户名和密码转换为一个map
    getUserName和getPwd对应User实体类中的get方法的方法名

    List<User> userList = new ArrayList<User>();
    Map<String,String> map = userList.stream().collect(Collectors.toMap(User::getUserName,User::getPwd));
    
    展开全文
  • 实体类转换Map Map转换实体类

    千次阅读 2018-04-23 14:10:43
    public class JavaBeanUtil { private static Logger logger = LoggerFactory.getLogger(JavaBeanUtil.class); /** * 实体类转map * @param obj * @return */ public static Map&lt;String, Ob...
  • java实体类转换为map

    2017-09-01 09:52:00
    import java.beans.BeanInfo;import java.beans.IntrospectionException;import java.beans.Introspector;import java.beans.PropertyDescriptor;import java.lang.reflect.InvocationTargetException;import java.l...
  • java:实体类对象转换为Map集合 public static Map<String,Object> getFiledInfo(Object o) { Map<String,Object> parameters = new HashMap<>(); Field[] fields = o.getClass()....
  • Java基础——Java实体类Map集合互

    千次阅读 2019-05-28 20:49:36
    废话不说,直接上代码!留着用吧... ...import java.beans.BeanInfo; import java.beans.IntrospectionException; import java.beans.Introspector; import java.beans.PropertyDescriptor; import ja...
  • * Map转实体类共通方法 * * @param type 实体类class * @param map map * @return Object * @throws Exception */ public static Object convertMap(Class type, Map map) throws Exception { ...
  • 1.调用这个方法BeanMapUtils.mapToBean(),实现map集合转实体类对象; 注意:这个方法转换时我这边老是报类型转换错误,引用这段代码没有报错的小伙伴可继续使用,此方法扩展性好,报错的小伙伴请看最下面的一个map转实体...
  • Java Map转换实体类对象简单实现

    万次阅读 多人点赞 2019-01-16 10:49:22
    开发的过程中往往依赖的表过多直接按Map值来传递数值,某些场景需要把Map转换为实体类,这里贴一个最简洁的方法,依赖阿里的FastJSon。 maven引入 &amp;lt;dependency&amp;gt; &amp;lt;groupId&amp...
  • 实体对象转成Map/Map转成实体对象的工具

    万次阅读 热门讨论 2018-01-10 16:40:32
    package com.yanshu.test... import java.lang.reflect.Field; import java.lang.reflect.Modifier;...import java.util.*;... * 实体对象转成Map  * @author Administrator  *  */ public class MapTrunPojo {
  • java Map转换为实体类

    千次阅读 2016-03-23 15:48:44
     * map转换成实体类  * @param map  * @param thisObj  * @return  */  public static Object convertMapToEntity2(Map map,Object thisObj)  {  //获取实体类的属性,返回field数据  Fie
  • 实体类转Map

    千次阅读 2018-01-15 18:06:10
    实体类转Map实际需求:需要将数据库的某些资料取出设进对应的word模板然后生成新word后打包zip下载 word模板处理 poi zip包 java8 转map 反射 实际使用中数据量过多,如果采用new后再将属性设进map中耗时太长,所以...
  • java Map实体类

    2018-07-20 02:19:45
    List<Map,Object>> list1 = feedbackService.getUnReadFeedBack(telphone); 这个是我获取到的列表 ``` 但是我的action中的返回类型是 PageMsg<List<Feedback>> list = null; 这个 PageMsg里面封装的是 ``` ...
  • java实体转map工具

    千次阅读 2015-09-11 10:53:15
    package com.test.util; import java.lang.reflect.Field; import java.util.Date; import java.util.HashMap; import java.util.Map; ...public class EntityToMap { ... * 实体类对象转换成Map * @param obj * @re
  • javabean(实体类转Map类型

    千次阅读 2014-07-09 16:10:43
    javabean转map类型 实体类转map类型
  • 实际开发中总是存在javamap想换转换的事情,而这种事公共方法可以写一个工具来处理。代码如下: 代码 MapUtils.java 工具代码: package com.kq.cloud.common.util; import org.apache.commons....
  • java通过反射将实体类转换HashMap类

    千次阅读 2019-10-24 11:43:01
    主方法 import ... import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.HashMap; public class t...
  • java把实体对象转化list和map

    万次阅读 2016-06-12 15:05:05
    普通方式: 某一个实体有较多字段,想把实体内的数据显示到excel中去,...下面是把实体对象转化list和map的方法. 需要引用两个jar包:commons-beanutils-1.9.2.jar commons-logging-1.2.jar ​ package Tomap...
  • java实体entity转map对象

    万次阅读 2018-12-26 15:59:03
    实体转对象 方法一,一句搞定,直接返回map对象: import org.springframework.cglib.beans.BeanMap; BeanMap.create(entityObj); 方法二:利用反射——详见原文
  • 将JSON数据转换成JAVA实体类

    万次阅读 2019-03-19 14:38:00
    思路:首先将JSON格式的数据转换JSONObject,然后将JSONObject转换Java的...Java实体类: SearchFilter 类 public class SearchFilter { private String groupOp; private List<SearchRule> rules...
  • Java Map反射到实体类

    千次阅读 2018-08-27 18:26:52
    场景 获取map集合数据,插入数据库,map集合中涉及到多个表的数据,如果按照传统做法是创建一个对象,map.get...1.实体类(虽然看起来很多,起始很简单的) public class Info { private Integer ttInteger; ...
  • 背景:因顺丰快递API的HTTP传输格式为JSON,且属性为下划线风格(如图二),但JAVA实体类属性名称遵循了驼峰规范,故写了一个工具类,作为转换。   package com.imall.crm; import ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 122,413
精华内容 48,965
关键字:

java把实体类转成map

java 订阅