Java新特性之函数式编程工具栏集合(长期更新)

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;
    }

}
发布了23 篇原创文章 · 获赞 19 · 访问量 1407

猜你喜欢

转载自blog.csdn.net/u012335601/article/details/103267006