函数式接口
定义
接口中只包含一个抽象方法的接口,Object类中有实现的方法(例如函数式接口Comparator中的equals方法)以及default声明的带方法体的都不算,可以用在接口上面加上@FunctionInterface注解来做校验
java中内置的四种基础的函数式接口
1.消费型函数式接口
2.供给型函数式接口
3.函数型函数式接口
4.断定型函数式接口
相应代码示例以及用法
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.function.Supplier;
public class FunctionInterfaceTest {
public static void main(String[] args) {
//java内置的四种基础函数型接口
//1.消费型函数式接口Consumer<T> 有传入参数,无返回参数 accept(T t) 目前粗略的认为可以用来打印日志之类的作用吧
// Consumer<String> consumer=t->{
// System.out.println(t);
// };
Consumer<String> consumer=System.out::println;
consumer.accept("我是消费型函数式接口");
//2.供给型函数式接口Supplier<T> 没有传入参数 有返回参数 T get()方法获得返回值
// Supplier<Double> supplier=()->Math.random();
Supplier<Double> supplier=Math::random;
System.out.println(supplier.get());
//3.函数型函数式接口Function<T,R> 有一个传入参数 有一个返回参数 R apply(T t)
Function<String,String> function=(t1)->t1+"嘤嘤嘤";
System.out.println(function.apply("我是函数型函数接口"));
//4.断定型函数接口Predicate<T> 一个传入参数 返回 boolean boolean test(T t)
Predicate<Integer> predicate=t->2==t.intValue();
System.out.println(predicate.test(2));
}
}