Quellcode durchsuchen

Map通用方法

chenwen vor 4 Jahren
Ursprung
Commit
d2ba8adfb4

+ 106 - 0
common/src/main/java/com/jpsoft/employment/modules/common/utils/MapUtils.java

@@ -0,0 +1,106 @@
+package com.jpsoft.employment.modules.common.utils;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.commons.lang.StringUtils;
+
+
+
+public class MapUtils {
+
+	/**
+	 * 为空串的value设置为null
+	 * @param args
+	 */
+	public static void blankValToNull(Map<String,Object> args){
+		for(String key : args.keySet()){
+			if(args.get(key) instanceof String && StringUtils.isEmpty((String)args.get(key))){
+				args.put(key,null);
+			}
+		}
+	}
+	
+	/**
+	 * 为空串的value设置为null,指定的keys有效
+	 * @param args
+	 */
+    public static void blankValToNull(Map<String,Object> args,String... keys){
+		for(String key : keys){
+			if(args.get(key) instanceof String && StringUtils.isEmpty((String)args.get(key))){
+				args.put(key,null);
+			}
+		}
+	}
+    
+    
+    /**
+     * 字符串时间value转换为Date对象值,指定的keys有效
+     * @param args
+     * @param fields
+     */
+    /*public static void strValToDate(Map<String,Object> args,String... keys){
+		for(String key : keys){
+			if(StringUtils.isNotEmpty((String)args.get(key))){
+				args.put(key,DateUtil.parse((String)args.get(key)));
+			}
+		}
+	}*/
+    
+    /**
+     * 提取部分键值对作为新的Map返回,原Map去掉被提取的键值对
+     * @param <V>
+     * @param srcMap
+     * @param keys
+     * @return
+     */
+    public static <V>  Map<String,V>  trackMap(Map<String,V> srcMap,String... keys){
+		Map<String,V> rtnMap=new HashMap<String,V>(keys.length);
+		for(String key : keys){
+			rtnMap.put(key, srcMap.get(key));
+		}
+		for(String key : keys){
+			srcMap.remove(key);
+		}
+		return rtnMap;
+	}
+	
+    /**
+     * 提取部分键值对作为新的Map返回
+     * @param <V>
+     * @param srcMap
+     * @param keys
+     * @return
+     */
+	public static <V> Map<String,V> clone(Map<String,V> srcMap,String... keys){
+		Map<String,V> rtnMap=new HashMap<String,V>(keys.length);
+		for(String key : keys){
+			rtnMap.put(key, srcMap.get(key));
+		}
+		return rtnMap;
+	}
+	
+	public static Map<String,Object> builder(String... keyVal){
+		if(keyVal==null){
+			return null;
+		}
+		Map<String,Object>  rtnMap=new HashMap<String,Object>();
+		for(int i=0,len=keyVal.length;i<len;i++){
+			rtnMap.put(keyVal[i], (i+1)<len?keyVal[i+1]:null);
+			i+=1;
+		}
+		return rtnMap;
+	}
+	
+	public static Map<String,Object> builder(Object... keyVal){
+		if(keyVal==null){
+			return null;
+		}
+		Map<String,Object>  rtnMap=new HashMap<String,Object>();
+		for(int i=0,len=keyVal.length;i<len;i++){
+			rtnMap.put(keyVal[i].toString(), (i+1)<len?keyVal[i+1]:null);
+			i+=1;
+		}
+		return rtnMap;
+	}
+}