java MapUtils工具类 map与实体类之间的转换

怼烎@ 2022-04-25 02:36 372阅读 0赞

前言

实际开发中总是存在java与map想换转换的事情,而这种事公共方法可以写成一个工具类来处理。代码如下:

代码

MapUtils.java 工具类代码:

  1. package com.kq.cloud.common.util;
  2. import org.apache.commons.collections.map.LinkedMap;
  3. import java.beans.BeanInfo;
  4. import java.beans.Introspector;
  5. import java.beans.PropertyDescriptor;
  6. import java.util.Map;
  7. /**
  8. * @author iceter
  9. * @Date 2019/04/30
  10. */
  11. public class MapUtils {
  12. public static Object transMap(Class type, Map map) throws Exception {
  13. Object obj = type.newInstance();//实例化类
  14. BeanInfo info = Introspector.getBeanInfo(type);//获取类中属性
  15. PropertyDescriptor[] propertyPermissions = info.getPropertyDescriptors();
  16. for (PropertyDescriptor pro : propertyPermissions) {
  17. String proName = pro.getName();
  18. if(map.containsKey(proName)){
  19. Object methodName = map.get(proName);
  20. Object[] args = {methodName};
  21. try {
  22. pro.getWriteMethod().invoke(obj,args);
  23. }catch (Exception e){
  24. e.printStackTrace();
  25. }
  26. }
  27. }
  28. return obj;
  29. }
  30. public static void main(String[] args) throws Exception {
  31. Map map = new LinkedMap();
  32. map.put("age",11);
  33. map.put("id","33");
  34. map.put("sex","man");
  35. map.put("name","fei");
  36. map.put("addr","neyok");
  37. User user = (User) MapUtils.transMap(User.class,map);
  38. System.out.println(user);
  39. }
  40. }

实体类代码

user.java 实体类代码

  1. package com.kq.cloud.common.util;
  2. public class User {
  3. private String id;
  4. private String name;
  5. private String sex;
  6. private Integer age;
  7. private String addr;
  8. @Override
  9. public String toString() {
  10. return "User{" +
  11. "id='" + id + '\'' +
  12. ", name='" + name + '\'' +
  13. ", sex='" + sex + '\'' +
  14. ", age=" + age +
  15. ", addr='" + addr + '\'' +
  16. '}';
  17. }
  18. public String getId() {
  19. return id;
  20. }
  21. public void setId(String id) {
  22. this.id = id;
  23. }
  24. public String getName() {
  25. return name;
  26. }
  27. public void setName(String name) {
  28. this.name = name;
  29. }
  30. public String getSex() {
  31. return sex;
  32. }
  33. public void setSex(String sex) {
  34. this.sex = sex;
  35. }
  36. public Integer getAge() {
  37. return age;
  38. }
  39. public void setAge(Integer age) {
  40. this.age = age;
  41. }
  42. public String getAddr() {
  43. return addr;
  44. }
  45. public void setAddr(String addr) {
  46. this.addr = addr;
  47. }
  48. }

目前只写了map转换为实体类,实体类转换为map就自己比着葫芦画瓢吧。

文中代码下载地址:https://download.csdn.net/download/u011561335/11153791

发表评论

表情:
评论列表 (有 0 条评论,372人围观)

还没有评论,来说两句吧...

相关阅读