`

MapUtil

 
阅读更多
package com.lee;

import java.beans.BeanInfo;
import java.beans.IntrospectionException;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.math.BigDecimal;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import org.apache.commons.lang3.StringUtils;


public final class MapUtil {
	
	public static void addStringToMap(Map<String, Object> map, String key, String value) {
		if (StringUtils.isNotBlank(value)) {
			map.put(key, value);
		}
	}

	public static void addValueToMap(Map<String, Object> map, String key, Object value) {
		if (value != null) {
			map.put(key, value);
		}
	}

	public static Double getDoubleValue(Map<String, Object> map, String key) {
		BigDecimal decimal = getMapValue(map, key, BigDecimal.class);
		return decimal == null ? null : decimal.doubleValue();
	}

	public static Date getDateValue(Map<String, Object> map, String key) {
		return getMapValue(map, key, Date.class);
	}

	public static Integer getIntegerValue(Map<String, Object> map, String key) {
		return getMapValue(map, key, Integer.class);
	}
	
	public static String getStringValue(Map<String, Object> map, String key) {
		return getMapValue(map, key, String.class);
	}

	public static <T> T getMapValue(Map<String, Object> map, String key, Class<T> clazz) {
		Object value = map.get(key);
		if (value == null) {
			return null;
		}
		return clazz.cast(value);
	}

	public static Object getMapValueWithDefault(Map<String, Object> data, String key, Object defaultVal) {
		Object value = data.get(key);
		if (value == null || StringUtils.isBlank(value.toString())) {
			return defaultVal;
		}
		return value;
	}
	
	public static Map<String, String> describeObject(Object object) throws IntrospectionException, IllegalAccessException, IllegalArgumentException, InvocationTargetException{
		Map<String,String> map = new HashMap<String,String>();
		BeanInfo beanInfo = Introspector.getBeanInfo(object.getClass());
		PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
		if (propertyDescriptors != null && propertyDescriptors.length > 0) {
            String propertyName = null; // object属性名
            Object propertyValue = null; // object属性值
            for (PropertyDescriptor pd : propertyDescriptors) {
                propertyName = pd.getName();
                if (!propertyName.equals("class")) {
                    Method readMethod = pd.getReadMethod();
                    propertyValue = readMethod.invoke(object, new Object[0]);
                    map.put(propertyName.toString(), propertyValue.toString());
                }
            }
        }
		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编码转换工具...

Global site tag (gtag.js) - Google Analytics