创建对应类型的 Predicates 的正确方式。

feature/net-util
ZhouXY108 2023-04-30 08:56:27 +08:00
parent ad01c58633
commit 9b268b668e
2 changed files with 10 additions and 9 deletions

View File

@ -2,9 +2,13 @@ package xyz.zhouxy.plusone.commons.function;
import java.util.function.Predicate;
public class Predicates<T> {
public class Predicates {
public final Predicate<T> of(Predicate<? super T> predicate) {
public static <T> Predicate<T> of(Predicate<? super T> predicate) {
return predicate::test;
}
private Predicates() {
throw new IllegalStateException("Utility class");
}
}

View File

@ -1,5 +1,6 @@
package xyz.zhouxy.plusone.commons.function;
import java.util.Objects;
import java.util.function.Predicate;
import org.apache.commons.lang3.StringUtils;
@ -11,12 +12,8 @@ class FunctionTests {
@Test
void test() {
String str = "";
Predicate<String> predicate = new Predicates<String>().of(this::nonNull)
.or(StringUtils::isNotBlank);
Assert.isTrue(predicate.test(str), "未通过");
}
boolean nonNull(Object obj) {
return obj != null;
Predicate<String> predicate = Predicates.<String>of(Objects::nonNull)
.and(StringUtils::isNotEmpty);
Assert.isFalse(predicate.test(str), "校验应是不通过");
}
}