`
zysnba
  • 浏览: 184017 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

JavaBean和Map转换封装类

 
阅读更多
package com.ljq.util;

import java.beans.BeanInfo;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


/**
* Map工具类
*
*/
public class MapUtils {

    /**
     * 从map集合中获取属性值
     *
     * @param <E>
     * @param map
     *            map集合
     * @param key
     *            键对
     * @param defaultValue
     *            默认值
     * @return
     */
    @SuppressWarnings({ "unchecked", "rawtypes" })
    public final static <E> E get(Map map, Object key, E defaultValue) {
        Object o = map.get(key);
        if (o == null)
            return defaultValue;
        return (E) o;
    }
   
    /**
     * Map集合对象转化成 JavaBean集合对象
     *
     * @param javaBean JavaBean实例对象
     * @param mapList Map数据集对象
     * @return
     */
    @SuppressWarnings({ "rawtypes" })
    public static <T> List<T> map2Java(T javaBean, List<Map> mapList) {
        if(mapList == null || mapList.isEmpty()){
            return null;
        }
        List<T> objectList = new ArrayList<T>();
       
        T object = null;
        for(Map map : mapList){
            if(map != null){
                object = map2Java(javaBean, map);
                objectList.add(object);
            }
        }
       
        return objectList;
       
    }
   
    /**
     * Map对象转化成 JavaBean对象
     *
     * @param javaBean JavaBean实例对象
     * @param map Map对象
     * @return
     */
    @SuppressWarnings({ "rawtypes","unchecked", "hiding" })
    public static <T> T map2Java(T javaBean, Map map) {
        try {
            // 获取javaBean属性
            BeanInfo beanInfo = Introspector.getBeanInfo(javaBean.getClass());
            // 创建 JavaBean 对象
            Object obj = javaBean.getClass().newInstance();

            PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
            if (propertyDescriptors != null && propertyDescriptors.length > 0) {
                String propertyName = null; // javaBean属性名
                Object propertyValue = null; // javaBean属性值
                for (PropertyDescriptor pd : propertyDescriptors) {
                    propertyName = pd.getName();
                    if (map.containsKey(propertyName)) {
                        propertyValue = map.get(propertyName);
                        pd.getWriteMethod().invoke(obj, new Object[] { propertyValue });
                    }
                }
                return (T) obj;
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

        return null;
    }

    /**
     * JavaBean对象转化成Map对象
     *
     * @param javaBean
     * @return
     */
    @SuppressWarnings({ "rawtypes", "unchecked" })
    public static Map java2Map(Object javaBean) {
        Map map = new HashMap();
        
        try {
            // 获取javaBean属性
            BeanInfo beanInfo = Introspector.getBeanInfo(javaBean.getClass());

            PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
            if (propertyDescriptors != null && propertyDescriptors.length > 0) {
                String propertyName = null; // javaBean属性名
                Object propertyValue = null; // javaBean属性值
                for (PropertyDescriptor pd : propertyDescriptors) {
                    propertyName = pd.getName();
                    if (!propertyName.equals("class")) {
                        Method readMethod = pd.getReadMethod();
                        propertyValue = readMethod.invoke(javaBean, new Object[0]);
                        map.put(propertyName, propertyValue);
                    }
                }
            }
           
        } catch (Exception e) {
            e.printStackTrace();
        } 
       
        return map;
    }

}


到此结束
分享到:
评论

相关推荐

    JavaBean和Map转换封装类的方法

    例如,如果你有一个用户类`User`,你可以很容易地将Map转换为User对象或User对象列表: ```java public class User { private String name; private int age; // 构造函数、getter和setter... } Map, Object&gt; ...

    map与Javabean相互转换实例

    `collectionUtils`可能是提供这些转换功能的一个工具类,包含了一系列关于集合操作的实用方法,包括`Map`和`JavaBean`的转换。在实际项目中,这样的工具类能帮助开发者提高代码的可读性和可维护性,避免重复编写转换...

    json转Map,转javaBean,javBean和Map转json

    在Java开发中,JSON(JavaScript Object ...通过这样的工具类,我们可以简化JSON、Map和JavaBean之间的转换过程,提高代码的可读性和可维护性。在实际开发中,了解并熟练掌握这些转换方法对于处理数据交互至关重要。

    JavaBean2Map-开源

    JavaBean2Map是一个开源项目,其核心功能是提供一种便捷的方式,将JavaBean对象转换为Map数据结构,同时也能将Map转换回JavaBean。这样的工具在处理数据交换、配置文件或者需要将对象属性与字典类型数据进行映射的...

    Servlet中对获取网页表单数据自动给JavaBean赋值的BeanUtil工具类

    BeanUtil工具类的常用方法一般包括`populate()`或`fillProperties()`等,这些方法接受一个JavaBean实例和一个Map对象作为参数。Map对象中包含了请求参数,键为参数名,值为参数值。工具类通过反射遍历JavaBean的所有...

    04.使用CXF处理JavaBean式的复合类型和List集合类型的形参和返回值

    JavaBean是一种遵循特定规范的Java类,主要用于数据封装。它们通常具有公共的getter和setter方法,用于设置和获取属性值,以及无参数的构造函数。在CXF中,我们可以利用JavaBean来作为服务接口的输入和输出参数,以...

    JAVA-JSON工具转换类

    `JsonUtil.java`看起来是一个自定义的工具类,很可能包含了对`json-lib`和`ezmorph`的封装,提供了简洁易用的API供开发者进行JSON操作。可能包含的方法有`toJson()`(将Java对象转换为JSON字符串)、`fromJson()`...

    json转换JavaBean

    下面我们将详细讨论如何实现这一转换,以及相关的工具类和库。 1. **JSON与JavaBean的关系** JSON对象与Java中的对象有很强的对应关系。JSON对象由键值对组成,类似于Java中的Map,而JSON数组则对应Java中的List或...

    首字母大写的json串转为javabean实例

    5. **使用工具类或方法**:可以创建一个静态方法或者工具类,接收JSON字符串和JavaBean的Class类型作为参数,内部实现转换逻辑,这样在项目中可以复用。 6. **代码示例**:对于Gson库,可以创建一个自定义`...

    ACCP 二期JSP_servlet_javabean笔记

    - **JavaBean**:遵循特定编码规范的Java类,主要用于封装数据和逻辑。 - **Struts**:一个基于MVC模式的框架,简化了Web应用的开发过程。 - **持久化层(存)**:这部分涉及到数据库操作,主要包括JDBC和...

    Struts2自定义类型转换

    Struts2的自定义类型转换可以分为两大类:局部类型转换和全局类型转换。 - **局部类型转换**:针对特定Action或实体类的类型转换,适用于特定场景下的数据处理。进一步分为: - 普通实体bean的自定义类型转换:...

    阿拉伯数字金额转换为大写数字金额

    在IT行业中,尤其是在财务软件开发或者银行系统设计中,经常需要将阿拉伯数字金额转换成大写数字金额,以便于核对、防止错误...同时,考虑到性能和代码复用,也可以将转换逻辑封装为一个独立的工具类,供其他模块调用。

    commons-beanutils-1.8.0.jar

    JavaBean是一种遵循特定规范的Java类,通常用于封装数据和业务逻辑。它们具有公共的getter和setter方法,用于访问和修改属性。BeanUtils库则提供了对JavaBean进行操作的工具类,简化了属性的设置和获取,以及对象...

    json帮助类

    这个类可能会包含一些静态方法,如`fromJsonToMap(String jsonString)`将JSON字符串转换为Map,`fromObjectToJson(Object obj)`将Java对象转换为JSON字符串,以及`mapToObject(Map, Object&gt; map, Class&lt;?&gt; clazz)`将...

    beanutils的jar包.zip

    在描述中提到的“json转化JavaBean对象封装键值对参数”,意味着我们将讨论如何使用BeanUtils来处理JSON数据与JavaBean之间的相互转换。 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于Web...

    DButils详解

    * `BeanListHandler`和`MapListHandler`等处理器能够将结果集转换为JavaBean列表或Map列表,便于进一步处理和使用。 * 最后,使用`DbUtils.closeQuietly()`关闭数据库连接,以避免资源泄露。 在实际应用中,...

    自动获取汉字的拼音简码

    JavaBean是一种符合JavaBeans规范的类,它具有良好的封装性,易于使用和复用。以下是一个简单的JavaBean示例: ```java public class PinyinBean { private Map, String&gt; pinyinMap; public PinyinBean() { // ...

    解决net.sf.json.JSONObject

    `JSONObject`可以转换为Java的其他类型,如Map或JavaBean。例如,转换为Map: ```java Map, Object&gt; map = (Map, Object&gt;) jsonObject.toMap(); ``` 9. **序列化和反序列化** json-lib库提供了将`JSONObject`...

    Java基础_第二阶段-day18每日作业卷答案1

    - **案例4**:自定义MyBeanUtils工具类,实现`populate()`方法,封装从Map到JavaBean的属性赋值逻辑。 4. **注意事项** - 使用BeanUtils时,需注意属性名与Map中的键一致,否则赋值失败。 - 如果属性为复杂类型...

    BeanUtils开发包

    这个开发包是Java开发者在处理对象属性绑定时的常用工具,尤其在数据封装和转换过程中,能够提高代码的简洁性和可读性。 首先,BeanUtils的核心功能之一是属性的自动类型转换。通过调用`BeanUtils.copyProperties()...

Global site tag (gtag.js) - Google Analytics