1.Predicate
@FunctionalInterface
public interface Predicate<T> {
/** 断言 */
boolean test(T t);
//and方法与关系型运算符"&&"相似,两边都成立才返回true
default Predicate<T> and(Predicate<? super T> other) {
Objects.requireNonNull(other);
return (t) -> test(t) && other.test(t);
}
// 与关系运算符"!"相似,对判断进行取反
default Predicate<T> negate() {
return (t) -> !test(t);
}
//or方法与关系型运算符"||"相似,两边只要有一个成立就返回true
default Predicate<T> or(Predicate<? super T> other) {
Objects.requireNonNull(other);
return (t) -> test(t) || other.test(t);
}
// 该方法接收一个Object对象,返回一个Predicate类型.此方法用于判断第一个test的方法与第二个test方法相同(equal).
static <T> Predicate<T> isEqual(Object targetRef) {
return (null == targetRef)
? Objects::isNull
: object -> targetRef.equals(object);
}
}
以下是测试客户端
public class PredicateTest {
public static void main(String[] args){
Predicate<Integer> predicate = (s) -> s > 0 ;
Predicate<Boolean> isNullPredicate = Objects::isNull;
Predicate<Boolean> nonNullPredicate = Objects::nonNull;
}
}
&spm=1001.2101.3001.5002&articleId=103267006&d=1&t=3&u=50ba29c2aa4146b1ad254e05b6eecf8d)
10万+

被折叠的 条评论
为什么被折叠?



