From 3acb81a58a3f374c7bbfa72349104d355c20ba32 Mon Sep 17 00:00:00 2001 From: Looly Date: Mon, 6 Sep 2021 09:52:22 +0800 Subject: [PATCH] fix bug --- CHANGELOG.md | 3 ++- .../main/java/cn/hutool/core/collection/ListUtil.java | 8 ++++---- .../main/java/cn/hutool/core/collection/Partition.java | 2 +- .../main/java/cn/hutool/core/date/LocalDateTimeUtil.java | 6 ++++-- .../java/cn/hutool/core/collection/ListUtilTest.java | 9 +++++++++ 5 files changed, 20 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c77276f9d..dd59aef8c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,7 @@ ------------------------------------------------------------------------------------------------------------- -# 5.7.12 (2021-09-02) +# 5.7.12 (2021-09-06) ### 🐣新特性 * 【system 】 OshiUtil增加getCurrentProcess方法 @@ -13,6 +13,7 @@ * 【setting】 Setting、Props持有URL改为持有Resource(pr#1182@Github) ### 🐞Bug修复 +* 【core 】 修复ListUtil.split方法越界问题(issue#I48Q0P@Gitee) ------------------------------------------------------------------------------------------------------------- diff --git a/hutool-core/src/main/java/cn/hutool/core/collection/ListUtil.java b/hutool-core/src/main/java/cn/hutool/core/collection/ListUtil.java index 780d83246..cc3b23192 100644 --- a/hutool-core/src/main/java/cn/hutool/core/collection/ListUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/collection/ListUtil.java @@ -533,8 +533,8 @@ public class ListUtil { *

* * @param 集合元素类型 - * @param list 列表 - * @param size 每个段的长度 + * @param list 列表,为空时返回{@link #empty()} + * @param size 每个段的长度,当长度超过list长度时,size按照list长度计算,即只返回一个节点 * @return 分段列表 * @since 5.4.5 */ @@ -557,8 +557,8 @@ public class ListUtil { *

* * @param 集合元素类型 - * @param list 列表 - * @param size 每个段的长度 + * @param list 列表,为空时返回{@link #empty()} + * @param size 每个段的长度,当长度超过list长度时,size按照list长度计算,即只返回一个节点 * @return 分段列表 * @see #partition(List, int) * @since 5.4.5 diff --git a/hutool-core/src/main/java/cn/hutool/core/collection/Partition.java b/hutool-core/src/main/java/cn/hutool/core/collection/Partition.java index 40015104d..3513d4711 100644 --- a/hutool-core/src/main/java/cn/hutool/core/collection/Partition.java +++ b/hutool-core/src/main/java/cn/hutool/core/collection/Partition.java @@ -26,7 +26,7 @@ public class Partition extends AbstractList> { */ public Partition(List list, int size) { this.list = list; - this.size = size; + this.size = Math.min(size, list.size()); } @Override diff --git a/hutool-core/src/main/java/cn/hutool/core/date/LocalDateTimeUtil.java b/hutool-core/src/main/java/cn/hutool/core/date/LocalDateTimeUtil.java index 5c8422fbd..9b77d6577 100644 --- a/hutool-core/src/main/java/cn/hutool/core/date/LocalDateTimeUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/date/LocalDateTimeUtil.java @@ -215,7 +215,8 @@ public class LocalDateTimeUtil { } /** - * 解析日期时间字符串为{@link LocalDateTime},仅支持yyyy-MM-dd'T'HH:mm:ss格式,例如:2007-12-03T10:15:30 + * 解析日期时间字符串为{@link LocalDateTime},仅支持yyyy-MM-dd'T'HH:mm:ss格式,例如:2007-12-03T10:15:30
+ * 即{@link DateTimeFormatter#ISO_LOCAL_DATE_TIME} * * @param text 日期时间字符串 * @return {@link LocalDateTime} @@ -225,7 +226,8 @@ public class LocalDateTimeUtil { } /** - * 解析日期时间字符串为{@link LocalDateTime},格式支持日期时间、日期、时间 + * 解析日期时间字符串为{@link LocalDateTime},格式支持日期时间、日期、时间
+ * 如果formatter为{code null},则使用{@link DateTimeFormatter#ISO_LOCAL_DATE_TIME} * * @param text 日期时间字符串 * @param formatter 日期格式化器,预定义的格式见:{@link DateTimeFormatter} diff --git a/hutool-core/src/test/java/cn/hutool/core/collection/ListUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/collection/ListUtilTest.java index 75a767e9b..47a3b36de 100644 --- a/hutool-core/src/test/java/cn/hutool/core/collection/ListUtilTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/collection/ListUtilTest.java @@ -16,6 +16,15 @@ import java.util.List; public class ListUtilTest { + @Test + public void splitTest(){ + List listAll = new ArrayList<>(); + listAll.add("1"); + listAll.add("2"); + List> lists = ListUtil.split(listAll, 10); + Assert.assertEquals(1, lists.size()); + } + @Test @Ignore public void splitBenchTest() {