|  | @@ -6,6 +6,7 @@ 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.HashMap;
 | 
	
		
			
				|  |  |  import java.util.List;
 | 
	
		
			
				|  |  |  import java.util.Map;
 | 
	
	
		
			
				|  | @@ -135,17 +136,40 @@ public class MapUtil {
 | 
	
		
			
				|  |  |  	 * @return java.util.Map
 | 
	
		
			
				|  |  |  	 * @describe mybatis返回结果转换为Map
 | 
	
		
			
				|  |  |  	 */
 | 
	
		
			
				|  |  | -	public static <K, V> Map<K, V> convertIntegerMap(List<Map<K, V>> maps) {
 | 
	
		
			
				|  |  | +	public static <K, V> Map<K, V> convertIntegerMap(List<Map<K, V>> maps,Class keyType,Class valueType) {
 | 
	
		
			
				|  |  |  		int size = 0;
 | 
	
		
			
				|  |  | -		if (maps != null) {
 | 
	
		
			
				|  |  | +		if(maps != null){
 | 
	
		
			
				|  |  |  			size = maps.size();
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  | -		Map<K, V> result = new HashMap<K, V>(size);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -		for (Map<K, V> map : maps) {
 | 
	
		
			
				|  |  | -			for (Entry<K, V> entry : map.entrySet()) {
 | 
	
		
			
				|  |  | -				result.put(entry.getKey(), entry.getValue());
 | 
	
		
			
				|  |  | -			}
 | 
	
		
			
				|  |  | +		Map result=new HashMap(size);
 | 
	
		
			
				|  |  | +		try {
 | 
	
		
			
				|  |  | +			for (Map<K, V> stringIntegerMap : maps) {
 | 
	
		
			
				|  |  | +				if(Objects.isNull(stringIntegerMap)){
 | 
	
		
			
				|  |  | +					continue;
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				if(stringIntegerMap.get("value") == null){
 | 
	
		
			
				|  |  | +					continue;
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				K key;
 | 
	
		
			
				|  |  | +				V value;
 | 
	
		
			
				|  |  | +				if(keyType.isAssignableFrom(BigDecimal.class)){
 | 
	
		
			
				|  |  | +					key = (K) BigDecimal.class.getDeclaredConstructor(String.class).newInstance(stringIntegerMap.get("key").toString());
 | 
	
		
			
				|  |  | +				}else if(keyType.isAssignableFrom(String.class)){
 | 
	
		
			
				|  |  | +					key = (K) stringIntegerMap.get("key").toString();
 | 
	
		
			
				|  |  | +				}else{
 | 
	
		
			
				|  |  | +					key = (K) keyType.getMethod("valueOf", String.class).invoke(null,stringIntegerMap.get("key").toString());
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				if(valueType.isAssignableFrom(BigDecimal.class)){
 | 
	
		
			
				|  |  | +					value = (V) BigDecimal.class.getDeclaredConstructor(String.class).newInstance(stringIntegerMap.get("value").toString());
 | 
	
		
			
				|  |  | +				}else if(valueType.isAssignableFrom(String.class)){
 | 
	
		
			
				|  |  | +					value = (V) stringIntegerMap.get("value").toString();
 | 
	
		
			
				|  |  | +				}else{
 | 
	
		
			
				|  |  | +					value = (V) valueType.getMethod("valueOf", String.class).invoke(null,stringIntegerMap.get("value").toString());
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				result.put(key, value);
 | 
	
		
			
				|  |  | +			};
 | 
	
		
			
				|  |  | +		}catch (Exception e){
 | 
	
		
			
				|  |  | +			e.printStackTrace();
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  		return result;
 | 
	
		
			
				|  |  |  	}
 |