JDK8新特性-java.util.function-Predicate接口
2018-01-03 19:59
453 查看
上篇主要对Function函数进行了简单了解,本篇则主要了解Predicate。该函数的主要作用其实就是判定输入的对象是否否和某个条件,然后将其布尔值返回。
主要使用方法如下:
除了test()抽象方法以及一个静态方法以外,其他的都是默认方法,可以存在多个默认方法以及静态方法。
实践操作如下:
返回值:
大多数标准的函数式接口都拥有用来生成或组合函数的非抽象方法。例如Predicate.isEqual(“test”)同”test”.equals一样(”test”位置的值不为null).
使用方式很简单,下篇则介绍剩余的几个常用函数式接口。
主要使用方法如下:
//唯一的抽象方法 boolean test(T t);
//且操作,既满足A也满足B条件 default Predicate<T> and(Predicate<? super T> other) { Objects.requireNonNull(other); return (t) -> test(t) && other.test(t); }
//取反操作 为true则返回false default Predicate<T> negate() { return (t) -> !test(t); }
//或操作,满足A条件或者满足B条件 default Predicate<T> or(Predicate<? super T> other) { Objects.requireNonNull(other); return (t) -> test(t) || other.test(t); }
//静态方法,判定是否相等 static <T> Predicate<T> isEqual(Object targetRef) { return (null == targetRef) ? Objects::isNull : object -> targetRef.equals(object); }
除了test()抽象方法以及一个静态方法以外,其他的都是默认方法,可以存在多个默认方法以及静态方法。
实践操作如下:
public static void main(String[] args) { Predicate<Integer> biggerThan6 = x -> x > 6; Predicate<Integer> lessThan3 = x -> x < 3; Predicate<Integer> lessThan9 = x -> x < 9; //7比6大为true,为false System.out.println("negate value=" + biggerThan6.negate().test(7)); //7比6大为true System.out.println("test() value=" + biggerThan6.test(7)); //8比6大且比9小 System.out.println("and value=" + biggerThan6.and(lessThan9).test(8)); //1比3小,满足一种条件 System.out.println("or value=" + biggerThan6.or(lessThan3).test(1)); //静态方法,判定是否相等 System.out.println("isEqual false value=" + Predicate.isEqual("test").test("num")); System.out.println("isEqual true value=" + Predicate.isEqual("num").test("num")); }
返回值:
negate value=false test() value=true and value=true or value=true isEqual false value=false isEqual true value=true
大多数标准的函数式接口都拥有用来生成或组合函数的非抽象方法。例如Predicate.isEqual(“test”)同”test”.equals一样(”test”位置的值不为null).
使用方式很简单,下篇则介绍剩余的几个常用函数式接口。
相关文章推荐
- JDK8新特性-java.util.function-Function接口
- 【转】Predicate和Consumer接口– Java 8中java.util.function包下的接口
- Predicate和Consumer接口– Java 8中java.util.function包下的接口
- Function接口 – Java8中java.util.function包下的函数式接口
- 2018/01/10JAVA 基础 / 接口与继承 / 接口与继承 默认方法JDK8接口新特性
- JDK8新特性☞测试Predicate接口
- java8 Function,Consumer,Predicate 接口
- 学习笔记5:java 1.8 Predicate,Function,Supplier,Consumer,Comparator,Optional,Stream接口的使用
- java.util.function 中的 Function、Predicate、Consumer
- Function接口 – Java8中java.util.function包下的函数式接口
- Java JVM(七):Function,Consumer,Predicate 接口
- Java JVM(七):Function,Consumer,Predicate 接口
- 通用函数接口java.util.function.*[
- JDK8新特性之接口
- java8新特性1--接口的变化
- JAVA8新特性(访问接口的默认方法)
- java学习之路 之 高级类特性2-接口(interface)-练习题
- jdk8特性例子 内置函数式接口
- java——深入java.util包(collection接口之AbstractList)
- 【java8新特性】关于接口