`

利用反射实现Map对象和Object对象之间相互转化

    博客分类:
  • java
阅读更多

 

1.  Map ----> Object

 

    public static <T> T mapToBean(Map<String, Object> map, Class<T> obj) throws Exception {
        if (map == null) {
            return null;
        }
        Set<Entry<String, Object>> sets = map.entrySet();
        T t = obj.newInstance();
        Method[] methods = obj.getDeclaredMethods();
        for (Entry<String, Object> entry : sets) {
            String str = entry.getKey();
            String setMethod = "set" + str.substring(0, 1).toUpperCase() + str.substring(1);
            for (Method method : methods) {
                if (method.getName().equals(setMethod)) {
                    method.invoke(t, entry.getValue());
                }
            }
        }
        return t;
    }

 

 

 

2. Object --> Map

 

  方法一:

 

    public  Map<String,Object> objectToMap(Object obj) {
        Map<String,Object> map = new HashMap<String,Object>();
        Class<?> c = null;
        try {
            c = Class.forName(obj.getClass().getName());
            Method[] m = c.getMethods();
            for (int i = 0; i < m.length; i++) {
                String method = m[i].getName();
                if (method.startsWith("get") && !method.equals("getClass")) {
                    try {
                        Object value = m[i].invoke(obj);
                        if (value != null) {
                            String key = method.substring(3);
                            key = key.substring(0, 1).toLowerCase() + key.substring(1);
                            map.put(key, value);
                        }
                    } catch (Exception e) {
                        logger.error("出现错误");
                        e.printStackTrace();
                    }
                }
            }
        } catch (Exception e) {
            logger.error("出现错误");
            e.printStackTrace();
        }
        return map;
    }

 

 方法二:

 

import java.beans.BeanInfo;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
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();  
                if (!key.equals("class")) {  
                    Method getter = property.getReadMethod();  
                    Object value = getter.invoke(obj);  
                    map.put(key, value);  
                }  
            }  
        } catch (Exception e) {  
            System.out.println("transBean2Map Error " + e);  
        }  
        return map;  
    } 

 

 

2
1
分享到:
评论

相关推荐

    java利用反射,将Object和Map进行互相转换,list和map互相转换

    java利用反射,将Object和Map进行互相转换,list和map互相转换 java Map和Object转换,list和map转换

    通过java反射实现map与bean之间互转

    在给定的标题“通过java反射实现map与bean之间互转”中,我们要探讨的是如何利用Java反射机制将Map对象转换为Java Bean对象,以及反过来,将Java Bean对象转换为Map对象。这个过程在数据处理和序列化中非常常见。 ...

    利用反射实现对象转json格式字符串

    总结来说,利用反射实现对象转JSON格式字符串涉及以下步骤: 1. 获取对象的类和所有声明的字段。 2. 使用反射访问字段并获取其值。 3. 将字段值添加到JSON映射中。 4. 如果对象有父类,递归处理父类的字段。 5. 将...

    java实现Object和Map之间的转换3种方式

    利用 Commons BeanUtils 库可以轻松实现 Object 和 Map 之间的转换。BeanUtils 库提供了 populate() 方法,可以将 Map 对象转换为 Object 对象。同时,BeanMap 类也可以将 Object 对象转换为 Map 对象。 ```java ...

    利用Google Gson实现JSON字符串和对象之间相互转换

    本文将详细介绍如何利用Google Gson库进行JSON字符串与对象之间的相互转换。 首先,我们需要了解Gson的核心概念。Gson库通过`Gson`类来实现JSON与Java对象的转换。当你有一个Java对象并想将其转化为JSON字符串时,...

    Map 转为Object Object 转为 Map java jdk1.4以上

    总结,Java反射机制提供了动态访问和修改对象的能力,使得在Map和Object之间进行转换成为可能。然而,这种转换方式有一定的局限性,例如无法处理私有字段、枚举、接口、泛型等复杂情况。在实际开发中,考虑到性能和...

    使用Java反射机制将Map转换为Java对象,支持Boolean、Date类型

    在本主题中,我们将深入探讨如何使用Java反射机制将Map转换为Java对象,同时支持Boolean和Date类型的数据。这种转换在处理JSON到对象的映射或者数据库查询结果到对象的映射时非常有用。 首先,我们需要了解Java中的...

    将Map转换成Java实体

    总结起来,将Map转换为Java实体对象是Java开发中常见的需求,我们可以利用Core Java JDK 1.8的泛型和反射来实现这一功能。通过创建一个通用的工具类,我们可以简化代码并提高代码复用性。在使用过程中,需要注意处理...

    java反射实现Object转json

    对于"java反射实现Object转json"这个主题,我们将深入探讨如何使用反射机制将Java对象转换为JSON格式的数据。 首先,理解JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也...

    对象转换成JSON和Map

    "对象转换成JSON和Map"是一个核心话题,特别是在Java编程语言中,因为JSON(JavaScript Object Notation)是网络通信中广泛使用的轻量级数据交换格式,而Map则是一种通用的数据结构,用于存储键值对。下面我们将深入...

    java中实现map与对象相互转换的几种实现

    Java中实现Map与对象相互转换的几种实现 Java中实现Map与对象相互转换是许多开发者经常遇到的问题,本文将介绍五种实现Map与对象相互转换的方法,每种方法都将通过示例代码进行详细的介绍。 方法一:使用org....

    利用java反射将json字符串转成对象.zip

    在给定的“利用java反射将json字符串转成对象”的主题中,我们将深入探讨如何借助反射机制将JSON字符串转换为Java对象。 首先,我们需要了解JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人...

    java Map转换成bean,利用java反射以及java和bean包

    总之,Java Map到Bean的转换是通过反射和JavaBeans规范实现的,这是Java开发中常用的一种数据转换技巧。理解并熟练运用这些知识,能够帮助我们更高效地处理各种数据结构,提升代码的灵活性。在实际项目中,可以根据...

    net.sf.json.JSONObject实现Object对象与Json字符串的互转

    在进行JSON与Java对象互转时,需要注意的是,Java对象的属性必须有对应的getter和setter方法,因为`JSONObject`依赖于Java的反射机制来读取和设置属性。此外,`JSONObject`在处理枚举类型时可能需要特别处理,通常会...

    Java Bean对象和Map相互转换.zip

    在Java编程中,Java Bean对象和Map之间的转换是常见的数据操作。这主要涉及到对象属性与键值对之间的映射,方便数据的存储、传递和处理。在这个主题中,我们将深入探讨如何使用Fastjson和BeanMap两个库来实现这种...

    map与Javabean相互转换实例

    本文将深入探讨如何通过反射机制实现`Map`和`JavaBean`的相互转换。 首先,我们要理解`JavaBean`的基本概念。`JavaBean`是符合JavaBeans规范的类,它通常具有公共的无参构造器、getter和setter方法以及私有的属性,...

    Java代码实现Map和Object互转及Map和Json互转

    在Java开发中,常常需要在Map和对象之间,以及Map和JSON之间进行转换。这样的转换在处理Web请求、数据存储和传输时非常常见。Java本身并没有提供直接的转换机制,但通过一些第三方库或反射机制,我们可以实现这些...

    java Map转Object与Object转Map实现代码

    在Java编程中,Map和Object之间的转换是非常常见的操作。在处理数据时,我们可能需要将一个对象的属性映射到Map中,或者从Map中恢复对象的状态。本文将详细介绍如何实现Java中的Map转Object与Object转Map,并提供...

    利用反射子父类赋值高效工具类案例extends_setvalue.zip

    总之,这个案例提供了一种高效的方法,利用Java反射机制在子类和父类之间进行字段赋值,减少了手动编写赋值代码的需求,提高了代码的可维护性和性能,尤其是在处理大量数据持久化或查询结果映射时。通过深入理解并...

    java bean和map之间的互转

    在实际开发中,我们常常需要将Java Bean对象与Map对象之间进行转换,以便于数据的处理和传输。以下将详细介绍如何实现这种转换。 首先,让我们了解一下Java Bean。Java Bean是一种符合JavaBeans规范的Java类,它...

Global site tag (gtag.js) - Google Analytics