diff --git a/hutool-core/src/main/java/cn/hutool/core/regex/ReUtil.java b/hutool-core/src/main/java/cn/hutool/core/regex/ReUtil.java index 4ecbedc41..c31bc2c7e 100755 --- a/hutool-core/src/main/java/cn/hutool/core/regex/ReUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/regex/ReUtil.java @@ -876,6 +876,9 @@ public class ReUtil { return StrUtil.str(content); } + // replacementTemplate字段不能为null,否则无法抉择如何处理结果 + Assert.notNull(replacementTemplate, "ReplacementTemplate must be not null !"); + final Matcher matcher = pattern.matcher(content); boolean result = matcher.find(); if (result) { diff --git a/hutool-core/src/test/java/cn/hutool/core/util/ReUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/util/ReUtilTest.java index e9504494d..79de3f2cc 100755 --- a/hutool-core/src/test/java/cn/hutool/core/util/ReUtilTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/util/ReUtilTest.java @@ -115,6 +115,16 @@ public class ReUtilTest { Assert.assertEquals("ZZZaaabbbccc中文->1234<-", replaceAll); } + @Test + public void replaceAllTest3() { + // 修改前:ReUtil.replaceAll()方法,当replacementTemplate为null对象时,出现空指针异常 + final String str = null; + // Assert.assertThrows(NullPointerException.class, () -> ReUtil.replaceAll(content, "(\\d+)", str)); + + // 修改后:判断ReUtil.replaceAll()方法,当replacementTemplate为null对象时,提示为非法的参数异常:ReplacementTemplate must be not null ! + Assert.assertThrows(IllegalArgumentException.class, () -> ReUtil.replaceAll(content, "(\\d+)", str)); + } + @Test public void replaceTest() { final String str = "AAABBCCCBBDDDBB";