MapUtil

    xiaoxiao2021-12-13  23

    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; } }

     

    转载请注明原文地址: https://ju.6miu.com/read-950358.html

    最新回复(0)