1. XenForo 1.5.14 中文版——支持中文搜索!现已发布!查看详情
  2. Xenforo 爱好者讨论群:215909318 XenForo专区

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

本帖由 漂亮的石头2017-12-19 发布。版面名称:软件资讯

  1. 漂亮的石头

    漂亮的石头 版主 管理成员

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

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

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

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

    [​IMG]

    [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
    feilong-core 1.10.6,让 Java 开发更简便的工具包下载地址
     
正在加载...