gpt4 book ai didi

Javabean和map相互转化方法代码示例

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Javabean和map相互转化方法代码示例由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

在做导入的时候,遇到了需要将map对象转化 成javabean的问题,也就是说,不清楚javabean的内部字段排列,只知道map的 key代表javabean的字段名,value代表值.

那现在就需要用转化工具了。是通用的哦! 。

首先来看 JavaBean 转化成Map的方法:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
[java]
/**
    * 将一个 JavaBean 对象转化为一个 Map
    * @param bean 要转化的JavaBean 对象
    * @return 转化出来的 Map 对象
    * @throws IntrospectionException 如果分析类属性失败
    * @throws IllegalAccessException 如果实例化 JavaBean 失败
    * @throws InvocationTargetException 如果调用属性的 setter 方法失败
    */
   @SuppressWarnings ({ "rawtypes" , "unchecked" })
   public static Map convertBean(Object bean)
       throws IntrospectionException, IllegalAccessException, InvocationTargetException {
     Class type = bean.getClass();
     Map returnMap = new HashMap();
     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);
         } else {
           returnMap.put(propertyName, "" );
         }
       }
     }
     return returnMap;
   }

下面是将Map转化成JavaBean对象的方法:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
[java]
/**
    * 将一个 Map 对象转化为一个 JavaBean
    * @param type 要转化的类型
    * @param map 包含属性值的 map
    * @return 转化出来的 JavaBean 对象
    * @throws IntrospectionException 如果分析类属性失败
    * @throws IllegalAccessException 如果实例化 JavaBean 失败
    * @throws InstantiationException 如果实例化 JavaBean 失败
    * @throws InvocationTargetException 如果调用属性的 setter 方法失败
    */
   @SuppressWarnings ( "rawtypes" )
   public static Object convertMap(Class type, Map map)
       throws IntrospectionException, IllegalAccessException,
       InstantiationException, InvocationTargetException {
     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);
       }
     }
     return obj;
   }

  。

以上内容我测试过,是没有问题的,供大家参考学习。感谢大家对本站的支持.

原文链接:https://www.2cto.com/kf/201207/141981.html 。

最后此篇关于Javabean和map相互转化方法代码示例的文章就讲到这里了,如果你想了解更多关于Javabean和map相互转化方法代码示例的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com