package org.jeecg.common.base; import cn.hutool.core.util.ObjectUtil; import org.apache.commons.beanutils.ConvertUtils; import java.math.BigDecimal; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Optional; import java.util.stream.Collectors; /** * 自定义Map */ public class BaseMap extends HashMap { private static final long serialVersionUID = 1L; public BaseMap() { } public BaseMap(Map map) { this.putAll(map); } @Override public BaseMap put(String key, Object value) { super.put(key, Optional.ofNullable(value).orElse("")); return this; } public BaseMap add(String key, Object value) { super.put(key, Optional.ofNullable(value).orElse("")); return this; } @SuppressWarnings("unchecked") public T get(String key) { Object obj = super.get(key); if (ObjectUtil.isNotEmpty(obj)) { return (T) obj; } else { return null; } } @SuppressWarnings("unchecked") public Boolean getBoolean(String key) { Object obj = super.get(key); if (ObjectUtil.isNotEmpty(obj)) { return Boolean.valueOf(obj.toString()); } else { return false; } } public Long getLong(String key) { Object v = get(key); if (ObjectUtil.isNotEmpty(v)) { return new Long(v.toString()); } return null; } public Long[] getLongs(String key) { Object v = get(key); if (ObjectUtil.isNotEmpty(v)) { return (Long[]) v; } return null; } public List getListLong(String key) { List list = get(key); if (ObjectUtil.isNotEmpty(list)) { return list.stream().map(e -> new Long(e)).collect(Collectors.toList()); } else { return null; } } public Long[] getLongIds(String key) { Object ids = get(key); if (ObjectUtil.isNotEmpty(ids)) { return (Long[]) ConvertUtils.convert(ids.toString().split(","), Long.class); } else { return null; } } public Integer getInt(String key, Integer def) { Object v = get(key); if (ObjectUtil.isNotEmpty(v)) { return Integer.parseInt(v.toString()); } else { return def; } } public Integer getInt(String key) { Object v = get(key); if (ObjectUtil.isNotEmpty(v)) { return Integer.parseInt(v.toString()); } else { return 0; } } public BigDecimal getBigDecimal(String key) { Object v = get(key); if (ObjectUtil.isNotEmpty(v)) { return new BigDecimal(v.toString()); } return new BigDecimal("0"); } @SuppressWarnings("unchecked") public T get(String key, T def) { Object obj = super.get(key); if (ObjectUtil.isEmpty(obj)) { return def; } return (T) obj; } public static BaseMap toBaseMap(Map obj) { BaseMap map = new BaseMap(); map.putAll(obj); return map; } }