javabean和map之间的相互转换

雨点打透心脏的1/2处 2022-02-03 00:45 398阅读 0赞

在这里插入图片描述在这里插入图片描述

javabean People代码

  1. package TestIntrosPector;
  2. import lombok.AllArgsConstructor;
  3. import lombok.Data;
  4. import lombok.NoArgsConstructor;
  5. import lombok.ToString;
  6. @Data
  7. @AllArgsConstructor
  8. @NoArgsConstructor
  9. public class People {
  10. private int age;
  11. private String name;
  12. private char sex='女';
  13. }

Beanutil转换工具类

  1. package map2javabean;
  2. import java.beans.BeanInfo;
  3. import java.beans.IntrospectionException;
  4. import java.beans.Introspector;
  5. import java.beans.PropertyDescriptor;
  6. import java.lang.reflect.InvocationTargetException;
  7. import java.lang.reflect.Method;
  8. import java.util.HashMap;
  9. import java.util.Map;
  10. public class BeanUtil {
  11. //一:map2javabean 把map对象转换为javabean
  12. public static <T> T map2bean(Map<String, Object> map,Class<T> beantype) throws Exception{
  13. T object=beantype.newInstance();//创建对象
  14. //获取类的属性描述器
  15. BeanInfo beaninfo=Introspector.getBeanInfo(beantype,Object.class);
  16. //获取类的属性集
  17. PropertyDescriptor[] pro=beaninfo.getPropertyDescriptors();
  18. for (PropertyDescriptor property : pro) {
  19. //获取属性的名字
  20. String name=property.getName();
  21. Object value=map.get(name);//得到属性name在map中对应的value。
  22. Method set=property.getWriteMethod();//得到属性的set方法
  23. //接下来将map的value转换为属性的value
  24. set.invoke(object, value);//执行set方法
  25. }
  26. return object;
  27. }
  28. //二:将javabean转换为map
  29. public static Map<String,Object> javabean2map(Object bean) throws Exception{ //传入一个javabean对象
  30. Map<String, Object> map=new HashMap<>();
  31. //获取类的属性描述器
  32. BeanInfo beaninfo=Introspector.getBeanInfo(bean.getClass(),Object.class);
  33. //获取类的属性集
  34. PropertyDescriptor[] pro=beaninfo.getPropertyDescriptors();
  35. for (PropertyDescriptor property : pro) {
  36. String key=property.getName();//得到属性的name
  37. Method get=property.getReadMethod();
  38. Object value=get.invoke(bean);//执行get方法得到属性的值
  39. map.put(key, value);
  40. }
  41. return map;
  42. }
  43. }

测试Beanutil

  1. package map2javabean;
  2. import java.util.Map;
  3. import TestIntrosPector.People;
  4. public class TestBeanUtil {
  5. public static void main(String[] args) throws Exception {
  6. //测试javabena2map
  7. People peo=new People(18, "王麻子", '男');
  8. Map<String, Object> map=BeanUtil.javabean2map(peo);
  9. System.out.println("javabena2map>>>:"+map);
  10. //测试map2javabena
  11. People people=BeanUtil.map2bean(map, People.class);
  12. System.out.println("map2javabena>>>:"+people);
  13. }
  14. }

在这里插入图片描述

发表评论

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

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

相关阅读