forked from plusone/plusone-commons
refactor: RegexTools 中使用 ArrayTools#isAllElementsNotNull 判断数组
NOTE: 数组为 null 时,不抛出 NullPointerException,而是 IllegalArgumentException。
This commit is contained in:
parent
55b459c131
commit
de6b4a6d8d
@ -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");
|
||||||
|
@ -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);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user