feilong-core 1.13.2,让 Java 开发更简便的工具包
本次升级共有 8
处变更, 具体参见 1.13.2 milestone
1.13.2 文档地址: http://feilong-core.mydoc.io/
单元测试数 增加至 2124
个, 单元测试覆盖率 增加至 91%
,javadoc 比率 83%
AggregateUtil.groupSum(Iterable<O> beanIterable, String keyPropertyName, String sumPropertyName)
迭代 beanIterable,取元素 keyPropertyName 的值为 key ,累计 sumPropertyName 属性值 为 value,返回 map.
统计 user list 按照姓名分组, 累加每个人的 age 总和
List<User> list = toList(// new User("张飞", 20), new User("关羽", 20), new User("刘备", 20), new User("刘备", 20)); Map<String, BigDecimal> map = AggregateUtil.groupSum(list, "name", "age"); assertThat( map, allOf(// hasEntry("刘备", toBigDecimal(40)), hasEntry("张飞", toBigDecimal(20)), hasEntry("关羽", toBigDecimal(20))));
#771 新增 AggregateUtil.groupSum(Iterable<O>, String, String, Predicate<O>)
#769 新增 MapUtil.putSumValue(Map<String, BigDecimal>, String, Number)
将key和value 累加的形式put到 map中,如果map中存在key,那么累加value值;如果不存在那么直接put.
常用于数据统计, 比如 com.feilong.core.util.AggregateUtil.groupSum(Iterable, String, String)
Map<String, BigDecimal> map = new HashMap<>(); MapUtil.putSumValue(map, "1000001", 5); MapUtil.putSumValue(map, "1000002", 5); MapUtil.putSumValue(map, "1000002", 5); LOGGER.debug(JsonUtil.format(map));
{ "1000001": 5, "1000002": 10 }
NotNullOrEmptyStringPredicate RegexStringPredicate StringToDateTransformer
BeanUtil.newDynaBean(Map<String, ?>)
map 改成Map<?, ?> RegexUtil.matches(String, CharSequence)
如果 CharSequence 是 null 返回 false 而不应该是 NPE