函数式接口
函数式接口,即只有一个抽象方法的接口即为函数式接口,可以使用lambda表达式简化使用。
函数式接口一般接口上都会有@FunctionInterface注解做标记,作用是检查该接口是否只有一个抽象方法,如果不写,但是接口中确实只有一个抽象方法,也不会影响lambda的使用,下面我们来看一下一些常见的函数式接口
Function< T , R >
函数型接口
T为传入参数的类型
R为返回值类型
1 | Function<String, String> f = s -> s.substring(2,4); |
Predicate< T >
断言型接口
T为传入参数的类型
返回值为Boolean
1 | Predicate<String> p = t->t.length()>5; |
Consumer< T >
消费者型接口
T为传入的参数
无返回值
1 | Consumer<String> consumer = c-> System.out.println("我使用了"+c); |
Supplier< T >
生产者型接口
T为返回值类型
1 | Supplier<String> supplier = ()-> UUID.randomUUID().toString(); |