@FunctionalInterface
函数式接口——只声明一个抽象方法的接口
如 :
断言Predicate----接收一个参数,返回一个布尔值,如何判断写在具体代码实现里。
还提供了3个默认实现(也是java8的新特性),or,and,将两个断言连接在一起,就是两个断言逻辑上的与或,negate(否认)即逻辑非
大部分函数式接口都提供了默认方法,目的是扩展。
@FunctionalInterface public interface Predicate<T> {undefined boolean test(T t); default Predicate<T> or(Predicate<? super T> other) { ... } default Predicate<T> and(Predicate<? super T> other) { ... } default Predicate<T> negate() { ... } ... }
还有诸如消费者Consumer,提供者Supplier等。
配合Lambda表达式使用。
JDK中提供了默认的许多接口,当成一个接口式的工具类使用就可以。