feilong-core 1.10.6,让 Java 开发更简便的工具包

栏目: 软件资讯 · 发布时间: 7年前

内容简介:feilong-core 1.10.6 发布了。feilong-core 是一个让 Java 开发更简便的工具包, 可以让你从大量重复的底层代码中脱身,提高工作效率; 让你的代码更简炼,易写、易读、易于维护; 本次升级共有 20 处变更, 具体参...

feilong-core 1.10.6 发布了。feilong-core 是一个让 Java 开发更简便的 工具 包, 可以让你从大量重复的底层代码中脱身,提高工作效率; 让你的代码更简炼,易写、易读、易于维护;

本次升级共有 20 处变更, 具体参见 1.10.6 milestone

1.10.6 文档地址: http://feilong-core.mydoc.io/

首先预览下,本次发布的核心内容 :

feilong-core 1.10.6,让 Java 开发更简便的工具包

[Feature] 

  • #681 添加 ParamUtil.toNaturalOrderingKeyJoinValue(Map<String, String>) 新建 将key和map直接拼接的方法

将 singleValueMap 转成自然排序, 然后将key和value直接拼接成字符串(不使用 = 和& 分隔).

示例:

 Map<String, String> map = new HashMap<>();
 map.put("service", "create_salesorder");
 map.put("_input_charset", "gbk");
 map.put("totalActual", "210.00");
 map.put("address", "江苏南通市通州区888组888号"); LOGGER.debug(ParamUtil.toNaturalOrderingKeyJoinValue(map));

返回:

 _input_charsetgbkaddress江苏南通市通州区888组888号servicecreate_salesordertotalActual210.00
  • #673 SortUtil 新增 Map<K, V> sortMapByKeyFixOrder(Map<K, V> map,K...keys) map 按照指定的固定key的顺序排序

按照key 指定名字顺序排序.

注意:

原 map 的顺序不变

示例:

 Map<String, Integer> map = new HashMap<>();

 map.put("DE", 99);
 map.put("L", 3428);
 map.put("O", 13);
 map.put("UN", 17);
 map.put("S", 6); //L-上市,S-暂停,DE-终止上市,UN-未上市 Map<String, Integer> sortByKeyAsc = sortMapByKeyFixOrder(map, "L", "UN", "DE", "S", "O"); LOGGER.debug(JsonUtil.format(sortByKeyAsc));

返回:

{ "L": 3428, "UN": 17, "S": 6, "DE": 99, "O": 13 }
  • #674 AggregateUtil 新增可以按照 多个属性名字来 groupCount的方法

com.feilong.core.util.AggregateUtil.groupCount(Iterable, String[])

com.feilong.core.util.AggregateUtil.groupCount(Iterable, String[], Predicate)

循环 beanIterable,只选择符合 includePredicate 的对象,统计 propertyName的值出现的次数.

说明:

返回的LinkedHashMap,key是propertyName名字,子map的key是propertyName对应的值,value是该值出现的次数;
顺序是 beanIterable propertyName的值的顺序

示例:

场景: 统计user list,属性名字是name 的值的数量 以及age值的数量

List<User> list = toList(// new User("张飞", 20), new User("关羽", 30), new User("赵云", 50), new User("刘备", 40), new User("刘备", 30), new User("赵云", 50)); Map<String, Map<Object, Integer>> map = AggregateUtil.groupCount(list, toArray("name", "age")); LOGGER.debug(JsonUtil.format(map));

返回:

{ "age":         { "20": 1, "30": 2, "50": 2, "40": 1 }, "name":         { "张飞": 1, "关羽": 1, "赵云": 2, "刘备": 2 }
}
  • #667 BeanPredicateUtil 新增 Predicate<T> equalPredicate(T bean,String...propertyNames)

构造属性与一个指定对象 bean 的一组属性的值 propertyNames 都相等的判断器.

说明:

常用于解析集合,如 select,find, selectRejected, group, groupCount, sum 等方法.

示例:

场景: 在list中查找 名字是 关羽,并且 年龄是30 的user

 User guanyu30 = new User("关羽", 30); List<User> list = toList(// new User("张飞", 23), new User("关羽", 24), new User("刘备", 25),
                 guanyu30); Predicate<User> predicate = PredicateUtils .andPredicate(BeanPredicateUtil.equalPredicate("name", "关羽"), BeanPredicateUtil.equalPredicate("age", 30));

 assertEquals(guanyu30, CollectionsUtil.find(list, predicate));

此时你可以优化成:

 User guanyu30 = new User("关羽", 30); List<User> list = toList(// new User("张飞", 23), new User("关羽", 24), new User("刘备", 25),
                 guanyu30);

 assertEquals(guanyu30, find(list, BeanPredicateUtil.equalPredicate(guanyu30, "name", "age")));
  • #628 NumberUtil 添加 BigDecimal getSubtractValue(Number beSubtractedValue,Number...subtractions) 计算减法的方法

说明:

示例:

 NumberUtil.getSubtractValue(0, 2, 3) = -5 NumberUtil.getSubtractValue(0,null) = 0 NumberUtil.getSubtractValue(0, new Integer[5]) = 0 NumberUtil.getSubtractValue(2, 1.1) = 0.9 NumberUtil.getSubtractValue(1000, 99.5, 99.0) = 801.5 NumberUtil.getSubtractValue(1000, 50, null) = 950 NumberUtil.getSubtractValue(-1000, -50, 100) = -1050 NumberUtil.getSubtractValue(null, 5) // NullPointerException
  • #686 添加 DateUtil.isToday(Date),判断指定的日期 是否是 今天的 方法

判断指定的日期 date,是不是今天的日期.

示例:

 DateUtil.isToday(new Date()) = true // 如果今天 是2017年12月14日 DateUtil.isToday(toDate("2016-06-16 22:59:00", COMMON_DATE_AND_TIME)) = false
  • #683 添加 DateExtensionUtil.getTodayStartAndEndPair() 新建获得 今天 开始和结束的时间的方法

获得 今天的开始时间 00:00:00.000 及今天的结束时间 23:59:59.999.

一般用于统计当天数据,between ... and ...

示例:

比如今天的是 2012-10-16 22:18:34 返回: 2012-10-16 00:00:00.000, 2012-10-16 23:59:59.999
  • #684 添加 DateExtensionUtil.getYesterdayStartAndEndPair() 新建获得 昨天 开始和结束的时间的方法

  • #677 添加 DateExtensionUtil.getMonthStartAndEndPair() 新建获得当前月区间的方法

  • #678 添加 DateExtensionUtil.getYearStartAndEndPair() 新建获得当前年区间的方法(第一天0点 到最后一天23:59:59)

[Update]

  • #687 DateUtil isEquals(Date date1,Date date2,String datePattern),如果 date1 == date2 直接返回true

  • #669 RegexPattern 移动到 feilong-validator 项目

  • #621 RegexPattern 配置是否可以提到配置文件,便于商城定制

  • #663 更新手机号码正则表达式

  • #665 RegexUtil 加上缓存

[Remove]

  • #682 删除 DateExtensionUtil.getResetTodayAndTomorrow() getResetYesterdayAndToday 方法

  • #592 删除 @deprecated com.feilong.core.RegexPattern.EMAIL

  • #676 删除没有用的 feilong-core-regex.properties

[Fix Bug] 

  • none

[javadoc]

  • none

[test]

  • #672 MessageFormatUtilTest.testFormat() 单元测试报错 bug

[help wanted]

  • #670 ThreadUtil 添加 javadoc 关于 callable Javadoc

[log]

  • none


【声明】文章转载自:开源中国社区 [http://www.oschina.net]


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

动手玩转Scratch2.0编程

动手玩转Scratch2.0编程

马吉德·马吉 (Majed Marji) / 电子工业出版社 / 2015-10-1 / CNY 69.00

Scratch 是可视化的编程语言,其丰富的学习环境适合所有年龄阶段的人。利用它可以制作交互式程序、富媒体项目,包括动画故事、读书报告、科学实验、游戏和模拟程序等。《动手玩转Scratch2.0编程—STEAM创新教育指南》的目标是将Scratch 作为工具,教会读者最基本的编程概念,同时揭示Scratch 在教学上的强大能力。 《动手玩转Scratch2.0编程—STEAM创新教育指南》共......一起来看看 《动手玩转Scratch2.0编程》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具