From 332fd5c346e18377a9c6bc8e3939619fc9632cf7 Mon Sep 17 00:00:00 2001 From: Looly Date: Tue, 6 Jun 2023 22:25:15 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8DTable#contains=E7=A9=BA?= =?UTF-8?q?=E6=8C=87=E9=92=88=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 1 + .../src/main/java/cn/hutool/core/map/multi/Table.java | 3 ++- .../test/java/cn/hutool/core/map/RowKeyTableTest.java | 10 ++++++++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d29d43351..a7d86d700 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ * 【core 】 修复TreeUtil.getParentsName()获取到的路径集合中存在值为null的路径名称问题(issue#I795IN@Gitee) * 【core 】 修复umberUtil.parseNumber对+解析问题(issue#I79VS7@Gitee) * 【core 】 修复IdcardUtil.getGenderByIdCard存在潜在的异常(pr#1007@Gitee) +* 【core 】 修复Table#contains空指针问题(issue#3135@Gitee) ------------------------------------------------------------------------------------------------------------- # 5.8.19(2023-05-27) diff --git a/hutool-core/src/main/java/cn/hutool/core/map/multi/Table.java b/hutool-core/src/main/java/cn/hutool/core/map/multi/Table.java index d60905e29..b9ba7eedb 100755 --- a/hutool-core/src/main/java/cn/hutool/core/map/multi/Table.java +++ b/hutool-core/src/main/java/cn/hutool/core/map/multi/Table.java @@ -31,7 +31,8 @@ public interface Table extends Iterable> { * @return 是否包含映射 */ default boolean contains(R rowKey, C columnKey) { - return Opt.ofNullable(getRow(rowKey)).map((map) -> map.containsKey(columnKey)).get(); + return Opt.ofNullable(getRow(rowKey)).map((map) -> map.containsKey(columnKey)) + .orElse(false); } //region Row diff --git a/hutool-core/src/test/java/cn/hutool/core/map/RowKeyTableTest.java b/hutool-core/src/test/java/cn/hutool/core/map/RowKeyTableTest.java index fdbaca398..c16b747d2 100644 --- a/hutool-core/src/test/java/cn/hutool/core/map/RowKeyTableTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/map/RowKeyTableTest.java @@ -36,4 +36,14 @@ public class RowKeyTableTest { Assert.assertEquals(1, column.size()); Assert.assertEquals(new Integer(4), column.get(1)); } + + @Test + public void issue3135Test() { + final Table table = new RowKeyTable<>(); + table.put(1, 2, 3); + table.put(1, 6, 4); + + Assert.assertNull(table.getRow(2)); + Assert.assertFalse(table.contains(2, 3)); + } }