Java 8
Java 8 Feature
一、函数式接口
1.1 常用函数式接口
接口名称 | 方法名称 | 接收的参数类型 | 返回类型 |
---|---|---|---|
Predicate | test | T | boolean |
Consumer | accept | T | void |
Function | apply | T | R |
Supplier | get | void | T |
使用函数是变成会有自动拆箱和装箱的过程,装箱需要把基本类型包裹起来,并保存在堆中,所以装箱后需要更多的内存
如果想要避免拆箱和装箱操作,可以使用针对专门的输入参数类型的函数是接口,例如IntPredicat、IntFunction、IntToDoubleFunction等等
细节
Java 8 提供的函数式接口是不允许抛出Exception及其子(checked exception),如果想要抛出异常有两种方法
定义一个自己的函数式接口,并抛出异常
@FunctionalInterface public interface BufferedReaderProcessor { String process(BufferedReader b) throws IOException; }
1
2
3
4
5
6
7
8
9
10
11
+ 在使用的时候将Lambda包裹在try/catch块中:
+ ```java
Function<BufferedReader, String> f = (BufferedReader bf) -> {
try {
return b.readLine();
} catch(IOException) {
throw new RuntimeException(e);
}
}
Java 8
https://tftisa.top/2024/07/10/Java 8/