`

Map工具类

    博客分类:
  • J2SE
 
阅读更多
import java.io.Serializable;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.math.BigDecimal;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * @author 
 * 2017-09-25
 */
public class MapConvertUtil implements Serializable{
	
	/**
	 * 序列化
	 */
	private static final long serialVersionUID = -1581756576497606672L;
	
	private static final Logger LOGGER = LoggerFactory.getLogger(MapConvertUtil.class);
	
	public static Double getDoubleValue(Map<String, Object> map, String key) {
		BigDecimal value = getMapValue(map, key, BigDecimal.class);
		return value == null ? 0d : value.doubleValue();
	}
	
	public static Float getFloatValue(Map<String, Object> map, String key) {
		BigDecimal value = getMapValue(map, key, BigDecimal.class);
		return value == null ? 0f : value.floatValue();
	}

	public static Date getDateValue(Map<String, Object> map, String key) {
		Object value = map.get(key);
		return value == null ? new Date() : new Date(value.toString());
	}

	public static Integer getIntegerValue(Map<String, Object> map, String key) {
		Object value = map.get(key);
		if(value != null)
		{
			try {
				return Integer.valueOf(value.toString());
			} catch (Exception e) {
				LOGGER.error("exception message:", e);
				return 0;
			}
		}
		return 0;
	}
	
	public static Long getLongValue(Map<String, Object> map, String key) {
		Object value = map.get(key);
		if(value != null)
		{
			try {
				return Long.valueOf(value.toString());
			} catch (Exception e) {
				LOGGER.error("exception message:", e);
				return 0l;
			}
		}
		return 0l;
	}
	
	public static String getStringValue(Map<String, Object> map, String key) {
		String value = getMapValue(map, key, String.class);
		return value == null ? "" : value;
	}

	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 Map<String, Object> PO2Map(Object o){
		Map<String, Object> map = new HashMap<String, Object>();
		Field[] fields = null;
		try {
			//子类属性
			fields = o.getClass().getDeclaredFields();
			for (Field field : fields) {
				field.setAccessible(true);
				String proName = field.getName();
				Object proValue = field.get(o);
				map.put(proName, proValue);
			}
			
			//父类属性
			fields = o.getClass().getSuperclass().getDeclaredFields();
			for (Field field : fields) {
				field.setAccessible(true);
				String proName = field.getName();
				Object proValue = field.get(o);
				map.put(proName, proValue);
			}
		} catch (Exception e) {
			LOGGER.error("exception message:", e);
		}
		return map;
	}

	public static Object map2PO(Map<String,Object> map,Object o){
		try {
			if (!map.isEmpty()) {
				for (Map.Entry<String,Object> m : map.entrySet()) {
					Object v = "";
					if (!m.getKey().isEmpty()) {
						v = m.getValue();
					}
					Field[] fields = null;
					//子类属性
					fields = o.getClass().getDeclaredFields();
					for (Field field : fields) {
						int mod = field.getModifiers();
						if(Modifier.isStatic(mod) || Modifier.isFinal(mod)){
							continue;
						}
						if (field.getName().equals(m.getKey())) {
							field.setAccessible(true);
							field.set(o, v);
						}
	
					}
					
					//父类属性
					fields = o.getClass().getSuperclass().getDeclaredFields();
					for (Field field : fields) {
						int mod = field.getModifiers();
						if(Modifier.isStatic(mod) || Modifier.isFinal(mod)){
							continue;
						}
						if (field.getName().equals(m.getKey())) {
							field.setAccessible(true);
							field.set(o, v);
						}
	
					}
				}
			}
		}catch (Exception e) {
			LOGGER.error("exception message:", e);
		}
		return o;
	}
	
	public static Map<String,Object> getMsgResultMap(final String msg)
	{
		return new HashMap<String, Object>(){/**
			 */
			private static final long serialVersionUID = 3883115499389307532L;

		{
		    put("code", "0");
		    put("msg", msg);
	    }};
	}
	
	public static Map<String,Object> getDataResultMap(final Object data)
	{
		return new HashMap<String, Object>(){/**
			 */
			private static final long serialVersionUID = 2024109428179733317L;

		{
		    put("code", "1");
		    put("msg", "success");
		    put("data", data);
	    }};
	}
}

 

0
0
分享到:
评论

相关推荐

    java实体转map工具类

    将java实体类转换为map mybatis里用map更方便

    java一键xml转map,一键map转xml工具类

    本文将详细讲解如何使用Java实现XML到Map以及Map到XML的一键转换,并介绍一个已封装好的工具类`EasyXmlUtil`。 首先,XML到Map的转换涉及到XML的解析。在Java中,我们可以使用`javax.xml.parsers....

    xml转map工具类

    使用xml转json,可以使用这个工具类,先转成map,之后使用自己的json工具类即可。

    js Map 工具类 MapUtil

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

    java代码-使用java解决bean&map工具类的源代码

    java代码-使用java解决bean&map工具类的源代码 ——学习参考资料:仅用于个人学习使用!

    Bean与Map转换工具类BeanMapConverter.java

    Bean与MAP间互转换的工具类。 1.将一个 Map 对象转化为一个 JavaBean,可指定BEAN的类型; 2.将一个 JavaBean 对象转化为一个 HashMap;

    对象与map互相转换工具类

    对象与map互相转换工具类

    List转换成Map工具类的简单实例

    本文将详细介绍一个将List转换为Map的工具类实例,它使用了JavaBeans和反射机制来实现这一功能。 首先,我们定义一个名为`List2MapUtils`的工具类,该类包含一个静态方法`convert2Map`。这个方法接受三个参数:`...

    ListBean转ListMap工具类

    用于 解决在批量数据传输过程中对数据要求转为ListMap格式

    java常用工具类整理

    2. org.springframework.util.CollectionUtils 工具类用于判断 List 和 Map 集合的非空,常用的方法有 isEmpty()、hasElement() 等。 3. org.springframework.util.xml.FileCopyUtils 文件拷贝处理工具类,常用的...

    Java工具类之Apache的Commons Lang和BeanUtils

    Java工具类是开发过程中不可或缺的一部分,它们提供了许多实用的功能,帮助开发者提高代码的效率和可维护性。Apache Commons Lang和BeanUtils是两个非常著名的Java工具库,由Apache软件基金会开发和维护。这两个库...

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

    `MapUtils`工具类就是为了解决这样的问题而设计的,它简化了`Map`对象和实体类之间的转换过程。本篇文章将深入探讨`MapUtils`工具类的使用及其在Java开发中的重要性。 首先,让我们了解一下实体类。在Java中,实体...

    javaweb项目常用工具包

    字符编码工具类-数据类型转换-日期工具类-Escape中文转码工具类-fastjson工具类-文件工具类-Http工具类-http请求工具类-用于模拟HTTP请求中GET/POST方式 -图片处理工具类-Ip工具类-mail工具类-Map工具类-MD5编码工具...

    ServiceStack.Redis操作工具类

    在使用ServiceStack.Redis操作工具类时,你需要了解以下关键知识点: 1. **连接管理**:ServiceStack.Redis提供了一个`IRedisClient`接口,它是所有Redis操作的基础。你可以通过`RedisManagerPool`或`RedisClient`...

    判断map对象是否为空等工具类

    这是一个工具类用于判断map中的键值对是否为空!普通判断若遇上空会报空指针异常!

    Map拆分List拆分

    例如,在Hadoop MapReduce中,InputFormat类负责将输入数据拆分为多个Map任务,每个任务处理一部分键值对。 接下来,List拆分与Map拆分类似,但更专注于有序或无序元素的序列。List通常包含一组元素,这些元素可以...

    Android代码-支持自定义主题的 Google Map 工具类。

    Utility class to make GoogleMap with custom theme. Create your own theme like this GoogleMapStyler googleMapStyler = new GoogleMapStyler.Builder(MainActivity.this) .setMainGeometryColorRes(R.color....

    Map和Bean灵活转换工具类

    这些工具类会遍历Map的每个键值对或Bean的每个属性,通过反射找到对应的setter方法并调用,从而完成数据的转换。 需要注意的是,由于反射的使用,这些工具类在提高灵活性的同时也可能带来一些性能开销。因此,在...

    史上最全的Java工具类

    史上最全的Java工具类,包括http访问,发送短信验证码,拼音转孩子,android图片压缩,...日期生成,相对日期生成,字符串工具类,android sharepreferences工具类,android Toast工具类, android sqlite工具类等等。

Global site tag (gtag.js) - Google Analytics