函数式接口(Functional Interface)

就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口。

函数式接口可以对现有的函数友好地支持 lambda。

JDK 1.8 新增加的函数接口:

  • java.util.function

java.util.function 它包含了很多类,用来支持 Java的 函数式编程,这里我们只讲四种

接口

描述

Function<T,R>

转换型,将T类型,转换成R类型。return R

Consumer<T>

消费型,进来T,没有return。是void

Supplier<T>

供给型,没有参数。生成一个T,return T

Predicate<T>

断言型,传入T,返回布尔类型

Function 转换型

import java.util.function.Function;

public class Demo05 {
public static void main(String[] args) {
Function<String,Integer> function = str->str.length();
Integer abc = function.apply("abc");
System.out.println(abc);
}
}

Consumer 消费型

Consumer<String> consumer = s -> System.out.println(s);
consumer.accept("def");

Supplier 供给型 

Supplier<String> stringSupplier = ()-> RandomStringUtils.randomAlphabetic(8);
String s = stringSupplier.get();
System.out.println(s);

Predicate 断言型

Predicate<String> predicate = str->str.length()>3;
boolean test = predicate.test("abcd");
System.out.println(test);

相关文章:

上一章:

​Java8新特性之Lambda 表达式_傲娇的喵酱的博客-​

下一章:

​java stream 流_傲娇的喵酱的博客​