vlambda博客
学习文章列表

java8四大函数式接口

java8四大函数式接口

说到java8  那不得不聊下它的这个函数式编程啦 😁

java8四大函数式接口函数式接口注解FunctionalInterface四大接口Consumer示例:Supplier示例:Function示例:Predicate示例:


函数式接口

函数式接口指的是接口中只有一个抽象方法的接口,用注解@FunctionalInterface标记,表示该接口是函数式接口


注解FunctionalInterface

如图,只是一个标记接口.


四大接口

Consumer

源码如下:

java8四大函数式接口


作用: 内部消化传进来的参数,没有返回值

示例:

Consumer<String> consumer=System.out::println;

consumer.accept("Consumer");

// 结果: "Consumer"


Supplier

源码如下:

java8四大函数式接口


作用: 没有传参,直接返回一个结果

示例:

Supplier<String> supplier= () -> "Supplier";

System.out.println(supplier.get());

// 结果: "Supplier"


Function

额这个源码太长了,截取部分源码如下:

可以看到它是综合了这个consumerSupplier🐖


作用: 根据传的参数,返回一个结果,这里是既有传参,又有返回值😝


示例:

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