`

MapUtil

 
阅读更多
做项目的感想:
     1.尽量用项目中已经封装好的工具类,切忌自己又去写(减少垃圾代码),使代码更规范
     2.了解性能及原理,用好API,就是在减少bug的出现,避免踩坑

package com.pingan.scf.core.server.util;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import org.apache.commons.collections.MapUtils;

import java.math.BigDecimal;
import java.util.*;

/**
 * 参数Map转换类
*/
public class MapUtil {

    /**
     * @方法名称 getString
     * @功能描述 <pre>取出mapkey对应的value值并转换为String</pre>     * @param map
* @param key
* @return
*/
public static String getString(final Map map, final Object key) {
        return getStringDefault(map,key,null);
    }
    /**
     * @方法名称 getStringDefault
     * @功能描述 <pre>取出mapkey对应的value值并转换为String,否则返回默认值</pre>* @param key
* @return
*/
public static String getStringDefault(final Map map, final Object key,String value) {
        return MapUtils.getString(map, key)==null? value:MapUtils.getString(map, key);
    }

    /**
     *
     * @方法名称 getInteger
     * @功能描述 <pre>取出mapkey对应的value值并转换为Integer</pre>     * @param map
* @param key
* @return
*/
public static Integer getInteger(final Map map, final Object key) {
        return MapUtils.getInteger(map, key);
    }

    /**
     * @方法名称 getLong
     * @功能描述 <pre>取出mapkey对应的value值并转换为Long</pre>     * @param map
* @param key
* @return
*/
public static Long getLong(final Map map, final Object key) {
        return MapUtils.getLong(map, key);
    }

    /**
     * @方法名称 getNumber
     * @功能描述 <pre>取出mapkey对应的value值并转换为Number</pre>     * @param map
* @param key
* @return
*/
public static Number getNumber(final Map map, final Object key) {
        return MapUtils.getNumber(map, key);
    }

    /**
     * @方法名称 getDate
     * @功能描述 <pre>取出mapkey对应的value值并转换为date</pre>     * @param map
* @param key
* @return
*/
public static Date getDate(final Map map, final Object key) {
        if (map != null){
            Object answer = map.get(key);
            if (answer != null) {
                if (answer instanceof Date) {
                    return (Date) answer;
                }
            }
        }
        return null;
    }

    /**
     * @方法名称 getBigDecimal
     * @功能描述 <pre>取出mapkey对应的value值并转换为BigDecimal</pre>     * @param map
* @param key
* @return
*/
public static BigDecimal getBigDecimal(final Map map, final Object key) {
        if (map != null){
            Object answer = map.get(key);
            if (answer != null) {
                if (answer instanceof BigDecimal) {
                    return (BigDecimal) answer;
                }
                else if(answer instanceof String) {
                    return new BigDecimal((String)answer);
                }else if(answer instanceof Integer) {
                    return new BigDecimal((Integer)answer);
                }else if(answer instanceof Long) {
                    return new BigDecimal((Long)answer);
                }else if(answer instanceof Double) {
                    return new BigDecimal((Double)answer);
                }else if(answer instanceof Float) {
                    return new BigDecimal((Float)answer);
                }
            }
        }
        return null;
    }

    /**
     * @方法名称 getBigDecimal
     * @功能描述 <pre>取出mapkey对应的value值并转换为Boolean</pre>     * @param map
* @param key
* @return
*/
public static Boolean getBoolean(final Map map, final Object key) {
        if (map != null) {
            Object answer = map.get(key);
            if (answer != null) {
                if (answer instanceof Boolean) {
                    return (Boolean) answer;

                } else if (answer instanceof String) {
                    return new Boolean((String) answer);

                } else if (answer instanceof Number) {
                    Number n = (Number) answer;
                    return (n.intValue() != 0) ? Boolean.TRUE : Boolean.FALSE;
                }
            }
        }
        return false;
    }

    public static List getList(final Map map, final Object key){
        if (map == null)
            return null;
        if (key == null)
            return null;
        if (!map.containsKey(key)) {
            return null;
        }
        Object value = map.get(key);
        if (value == null)
            return null;

        if (List.class.isAssignableFrom(value.getClass())) {
            return (List) value;
        }
        return null;
    }

    /**
     * 对象转map
     * @param object
* @return
*/
public static Map<String, Object> object2Map(Object object){
        JSONObject jsonObject = (JSONObject) JSON.toJSON(object);
        Set<Map.Entry<String,Object>> entrySet = jsonObject.entrySet();
        Map<String, Object> map=new HashMap<String,Object>();
        for (Map.Entry<String, Object> entry : entrySet) {
            map.put(entry.getKey(), entry.getValue()==null?"":entry.getValue());
        }
        return map;
    }
}

 

分享到:
评论

相关推荐

    mapUtil1.js

    mapUtil1.js

    js Map 工具类 MapUtil

    `MapUtil`工具类则是为了方便开发者更高效、更灵活地操作`Map`对象。下面我们将详细探讨`MapUtil`工具类可能包含的功能以及其背后的原理。 `MapUtil`工具类通常会提供一些常见的实用方法,以增强`Map`对象的功能。...

    mapUtil js工具类

    mapUtil js工具类

    MapUtil.java.zip_GPS距离_MapUtil.java_gpsutil java_tradet6w_地图距离

    GPS点之间的距离 点到直线的距离 计算两个经纬度之间的距离 计算点c与线段ab的关系数据,采用向量点积的方法

    MapUtil.java

    资源内容:工欲善其事必先利其器,本资源内容为Java开发常用工具类打包,如BeanUtil,ArrayUtil,HtmlUtil,ClassUtil,DateUtil,FileUtil,FontUtil,ImageUtil,IOUtil, IPUtil, MapUtil,MailUtil, NumberUtil,...

    MapUtils工具类,轻松转换map数据与实体类

    在Java编程中,数据转换是常见的操作之一,特别是在处理数据绑定和对象映射时。`MapUtils`工具类就是为了解决这样的问题而设计的,它简化了`Map`对象和实体类之间的转换过程。本篇文章将深入探讨`MapUtils`工具类的...

    MapUtils_java_Maputils_

    在Java编程中,Map接口是集合框架的重要组成部分,它提供了键值对的存储方式,广泛应用于数据处理和对象关系映射。MapUtils类通常是为了提供对Map接口的便捷操作和实用方法而创建的辅助工具类。...

    bean和map之间转换的帮助类

    主要实现bean和map之间的相互转换,主要提供两个方法beanToMap将bean转换成Map 和mapToBean 将Map转换成bean 每次下载都没有积分,不差积分的大神赞助点呗 写了这一小段代码,供新手学习,大神就别拍砖了 身板弱扛...

    java Pojo转Map

    这里提供一个简单的工具类`Pojo2MapUtil`: ```java import java.lang.reflect.Field; import java.util.HashMap; import java.util.Map; public class Pojo2MapUtil { public static &lt;T&gt; Map, Object&gt; ...

    小而全的Java工具类库,使Java拥有函数式语言般的优雅.zip

    5. 集合工具:扩展了Java内置的集合类,如ListUtil、MapUtil等,提供了更多的实用方法。 6. 网络工具:支持TCP、UDP通信,HTTP请求,DNS解析等网络操作。 7. 加密解密工具:包含MD5、SHA、AES、DES等多种加密算法...

    Java工具类合集

    此外,可能会有针对集合操作的工具类,如`ListUtil`、`MapUtil`,它们提供了对Java集合框架的扩展和优化。 这个合集可能还包括线程池管理工具,如`ThreadPoolUtil`,用于创建和管理线程池,提高多线程环境下的性能...

    agile-framework-common-util-master_java_

    `common-util`模块是Agile Framework Common Util的核心部分,它包含了各种通用的工具方法,除了`ObjectUtil`外,可能还包括`ArrayUtil`、`CollectionUtil`、`MapUtil`等,分别提供了对数组、集合和映射的操作支持。...

    js操作map类UtilMap

    在JavaScript中,原生的`Map`对象虽然提供了丰富的功能,但其操作方式与Java中的`Map`有所不同,不那么直观。为了使习惯于Java开发的程序员在JS中也能便捷地操作映射数据结构,我们可以创建一个名为`UtilMap`的对象...

    android 常用工具封装

    8. **集合操作**:ListUtil和MapUtil可能提供了对集合操作的支持,如查找、过滤、合并等。 9. **数据存储**:PreferencesUtil和SharedPreferencesUtil通常用于轻量级的数据存储,如用户偏好设置。 10. **文件操作*...

    java工具类(多年积累) 下载后导入就可以使用~

    5. **MapUtil**:对于Map接口的操作,包括创建Map,检查键值对,合并Map,转换Map等。例如,`putAllIfAbsent()`在Map中添加键值对,但只在键不存在时才添加。 6. **NumberUtil**:处理数字相关的操作,可能有数字...

    java工具类28+26.rar

    3. **集合工具类**:如ListUtil、MapUtil、SetUtil等,它们提供了一组方便的集合操作方法,如清空、复制、检查空集、合并集合等。这些工具类可以帮助我们更高效地管理和操作Java集合框架。 4. **IO流工具类**:如...

    Hutool 参考文档.pdf

    Map工具(MapUtil)、Base64编码解码(Base64)、Base32编码解码(Base32)和CSV文件处理工具(CsvUtil)等为编码转换和文件操作提供了实用工具。 可复用字符串生成器(StrBuilder)、Unicode编码转换工具...

    JXstar平台开发手册1.2

    - **org.jxstar.util.MapUtil**: 提供Map操作的工具方法。 - **org.jxstar.util.StringUtil**: 提供字符串操作的工具方法。 - **org.jxstar.util.key.KeyCreator**: 键值生成工具类。 - **org.jxstar.util.key.Code...

Global site tag (gtag.js) - Google Analytics