函数式接口

函数式接口

函数式接口,即只有一个抽象方法的接口即为函数式接口,可以使用lambda表达式简化使用。

函数式接口一般接口上都会有@FunctionInterface注解做标记,作用是检查该接口是否只有一个抽象方法,如果不写,但是接口中确实只有一个抽象方法,也不会影响lambda的使用,下面我们来看一下一些常见的函数式接口

Function< T , R >

函数型接口

T为传入参数的类型

R为返回值类型

1
2
3
Function<String, String> f = s -> s.substring(2,4);
String apply = f.apply("asdas asd ");
System.out.println(apply);

Predicate< T >

断言型接口

T为传入参数的类型

返回值为Boolean

1
2
3
Predicate<String> p = t->t.length()>5;
System.out.println(p.test("3223"));
System.out.println(p.test("saf223"));

Consumer< T >

消费者型接口

T为传入的参数

无返回值

1
2
3
Consumer<String> consumer = c-> System.out.println("我使用了"+c);
consumer.accept("123");
consumer.accept("456");

Supplier< T >

生产者型接口

T为返回值类型

1
2
Supplier<String> supplier = ()-> UUID.randomUUID().toString();
System.out.println(supplier.get());
给作者买杯咖啡吧~~~