refactor: RegexTools 中使用 ArrayTools#isAllElementsNotNull 判断数组

NOTE: 数组为 null 时,不抛出 NullPointerException,而是 IllegalArgumentException。
This commit is contained in:
zhouxy108 2025-04-02 14:28:59 +08:00
parent 55b459c131
commit de6b4a6d8d
2 changed files with 9 additions and 22 deletions

View File

@ -18,7 +18,6 @@ package xyz.zhouxy.plusone.commons.util;
import java.util.Arrays; import java.util.Arrays;
import java.util.Map; import java.util.Map;
import java.util.Objects;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
@ -70,8 +69,7 @@ public final class RegexTools {
* @return {@link Pattern} 实例数组 * @return {@link Pattern} 实例数组
*/ */
public static Pattern[] getPatterns(final String[] patterns, final boolean cachePattern) { public static Pattern[] getPatterns(final String[] patterns, final boolean cachePattern) {
AssertTools.checkNotNull(patterns); AssertTools.checkArgument(ArrayTools.isAllElementsNotNull(patterns));
AssertTools.checkArgument(allNotNull(patterns));
return cachePattern return cachePattern
? cacheAndGetPatternsInternal(patterns) ? cacheAndGetPatternsInternal(patterns)
: getPatternsInternal(patterns); : getPatternsInternal(patterns);
@ -84,8 +82,7 @@ public final class RegexTools {
* @return {@link Pattern} 实例数组 * @return {@link Pattern} 实例数组
*/ */
public static Pattern[] getPatterns(final String[] patterns) { public static Pattern[] getPatterns(final String[] patterns) {
AssertTools.checkNotNull(patterns); AssertTools.checkArgument(ArrayTools.isAllElementsNotNull(patterns));
AssertTools.checkArgument(allNotNull(patterns));
return getPatternsInternal(patterns); return getPatternsInternal(patterns);
} }
@ -109,8 +106,7 @@ public final class RegexTools {
* @return 判断结果 * @return 判断结果
*/ */
public static boolean matchesOne(@Nullable final CharSequence input, final Pattern[] patterns) { public static boolean matchesOne(@Nullable final CharSequence input, final Pattern[] patterns) {
AssertTools.checkNotNull(patterns); AssertTools.checkArgument(ArrayTools.isAllElementsNotNull(patterns));
AssertTools.checkArgument(allNotNull(patterns));
return matchesOneInternal(input, patterns); return matchesOneInternal(input, patterns);
} }
@ -122,8 +118,7 @@ public final class RegexTools {
* @return 判断结果 * @return 判断结果
*/ */
public static boolean matchesAll(@Nullable final CharSequence input, final Pattern[] patterns) { public static boolean matchesAll(@Nullable final CharSequence input, final Pattern[] patterns) {
AssertTools.checkNotNull(patterns); AssertTools.checkArgument(ArrayTools.isAllElementsNotNull(patterns));
AssertTools.checkArgument(allNotNull(patterns));
return matchesAllInternal(input, patterns); return matchesAllInternal(input, patterns);
} }
@ -166,8 +161,7 @@ public final class RegexTools {
*/ */
public static boolean matchesOne(@Nullable final CharSequence input, final String[] patterns, public static boolean matchesOne(@Nullable final CharSequence input, final String[] patterns,
final boolean cachePattern) { final boolean cachePattern) {
AssertTools.checkNotNull(patterns); AssertTools.checkArgument(ArrayTools.isAllElementsNotNull(patterns));
AssertTools.checkArgument(allNotNull(patterns));
final Pattern[] patternSet = cachePattern final Pattern[] patternSet = cachePattern
? cacheAndGetPatternsInternal(patterns) ? cacheAndGetPatternsInternal(patterns)
: getPatternsInternal(patterns); : getPatternsInternal(patterns);
@ -182,8 +176,7 @@ public final class RegexTools {
* @return 判断结果 * @return 判断结果
*/ */
public static boolean matchesOne(@Nullable final CharSequence input, final String[] patterns) { public static boolean matchesOne(@Nullable final CharSequence input, final String[] patterns) {
AssertTools.checkNotNull(patterns); AssertTools.checkArgument(ArrayTools.isAllElementsNotNull(patterns));
AssertTools.checkArgument(allNotNull(patterns));
final Pattern[] patternSet = getPatternsInternal(patterns); final Pattern[] patternSet = getPatternsInternal(patterns);
return matchesOneInternal(input, patternSet); return matchesOneInternal(input, patternSet);
} }
@ -198,8 +191,7 @@ public final class RegexTools {
*/ */
public static boolean matchesAll(@Nullable final CharSequence input, final String[] patterns, public static boolean matchesAll(@Nullable final CharSequence input, final String[] patterns,
final boolean cachePattern) { final boolean cachePattern) {
AssertTools.checkNotNull(patterns); AssertTools.checkArgument(ArrayTools.isAllElementsNotNull(patterns));
AssertTools.checkArgument(allNotNull(patterns));
final Pattern[] patternSet = cachePattern final Pattern[] patternSet = cachePattern
? cacheAndGetPatternsInternal(patterns) ? cacheAndGetPatternsInternal(patterns)
: getPatternsInternal(patterns); : getPatternsInternal(patterns);
@ -214,8 +206,7 @@ public final class RegexTools {
* @return 判断结果 * @return 判断结果
*/ */
public static boolean matchesAll(@Nullable final CharSequence input, final String[] patterns) { public static boolean matchesAll(@Nullable final CharSequence input, final String[] patterns) {
AssertTools.checkNotNull(patterns); AssertTools.checkArgument(ArrayTools.isAllElementsNotNull(patterns));
AssertTools.checkArgument(allNotNull(patterns));
final Pattern[] patternSet = getPatternsInternal(patterns); final Pattern[] patternSet = getPatternsInternal(patterns);
return matchesAllInternal(input, patternSet); return matchesAllInternal(input, patternSet);
} }
@ -347,10 +338,6 @@ public final class RegexTools {
.allMatch(pattern -> pattern.matcher(input).matches()); .allMatch(pattern -> pattern.matcher(input).matches());
} }
private static <T> boolean allNotNull(T[] array) {
return Arrays.stream(array).allMatch(Objects::nonNull);
}
private RegexTools() { private RegexTools() {
// 不允许实例化 // 不允许实例化
throw new IllegalStateException("Utility class"); throw new IllegalStateException("Utility class");

View File

@ -75,7 +75,7 @@ class RegexToolsTests {
@Test @Test
void getPatterns_NullPatterns_ThrowsException() { void getPatterns_NullPatterns_ThrowsException() {
assertThrows(NullPointerException.class, () -> { assertThrows(IllegalArgumentException.class, () -> {
RegexTools.getPatterns(null, true); RegexTools.getPatterns(null, true);
}); });
} }