import java.util.HashMap;import java.util.Map;import lombok.extern.slf4j.Slf4j;/** * @author zhouzhenyong * @since 2018/12/22 下午10:16 */@Slf4jpublic final class Maps<K, V> { private static final Integer KV_NUM = 2; private Maps() {} private Map<K, V> dataMap = new HashMap<>(); /** * key-value-key-value...这种格式初始化map * * @param kvs key-value-key-value这种kv入参 * @return 构造的Maps结构 */ @SuppressWarnings({"rawtypes", "unchecked"}) public static Maps of(Object... kvs) { if (kvs.length % KV_NUM != 0) { log.error("Maps.of的参数需要是key-value-key-value...这种格式"); return new Maps(); } Maps maps = new Maps(); for (int i = 0; i < kvs.length; i += KV_NUM) { if (null == kvs[i]) { log.error("map的key不可以为null"); return maps; } maps.put(kvs[i], kvs[i + 1]); } return maps; } public Maps<K, V> put(Map<K, V> map) { dataMap.putAll(map); return this; } public Maps<K, V> put(K key, V value) { dataMap.put(key, value); return this; } public Maps<K, V> add(Map<K, V> map) { dataMap.putAll(map); return this; } public Maps<K, V> add(K key, V value) { dataMap.put(key, value); return this; } public Map<K, V> build() { return dataMap; }}