java8四大函数式接口
java8四大函数式接口
说到java8 那不得不聊下它的这个函数式编程啦 😁
java8四大函数式接口函数式接口注解FunctionalInterface
四大接口Consumer示例:Supplier示例:Function示例:Predicate示例:
函数式接口
函数式接口指的是接口中只有一个抽象方法的接口,用注解
@FunctionalInterface
标记,表示该接口是函数式接口
注解FunctionalInterface
如图,只是一个标记接口.
四大接口
Consumer
源码如下:
作用: 内部消化传进来的参数,没有返回值
示例:
Consumer<String> consumer=System.out::println;
consumer.accept("Consumer");
// 结果: "Consumer"
Supplier
源码如下:
作用: 没有传参,直接返回一个结果
示例:
Supplier<String> supplier= () -> "Supplier";
System.out.println(supplier.get());
// 结果: "Supplier"
Function
额这个源码太长了,截取部分源码如下:
可以看到它是综合了这个consumer
和Supplier
🐖
作用: 根据传的参数,返回一个结果,这里是既有传参,又有返回值😝
示例:
Function<String,String> func= String::toUpperCase;
System.out.println(func.apply("Function"));
// 结果: "FUNCTION"
Predicate
额这个源码也比较长,截取部分源码如下:
作用: 判断给的参数是否符合条件
示例:
Predicate<String> predicate= "predicate"::equals;
System.out.println(predicate.test("predicate"));
// 结果: true