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)); + } }