java fuction
时间: 2023-11-10 16:00:06 浏览: 46
JDK1.8之前已有的函数式接口包括:java.lang.Runnable、java.util.concurrent.Callable、java.security.PrivilegedAction、java.util.Comparator、java.io.FileFilter、java.nio.file.PathMatcher、java.lang.reflect.InvocationHandler、java.beans.PropertyChangeListener、java.awt.event.ActionListener、javax.swing.event.ChangeListener。
函数式接口可以理解为只有一个抽象方法的接口。在Java中,函数式接口主要用于Lambda表达式和方法引用。
举个例子,使用BiConsumer接口的accept方法,我们可以将两个参数的字符串拼接起来:
```
StringBuilder sb = new StringBuilder();
BiConsumer<String, String> biConsumer = (a, b) -> {
sb.append(a);
sb.append(b);
};
biConsumer.accept("Hello ", "Jack!");
System.out.println(sb.toString()); // 输出:Hello Jack!
```
另外,Function是一个函数式接口,它接收一个输入参数并返回一个结果:
```
Function<Integer, Integer> root = (v) -> {
System.out.println("root apply");
return v - 1; // 12
};
Function<Integer, Integer> before = (v) -> {
System.out.println("before apply");
return v - 1; // 先得到结果11,再传给root
};
System.out.println(root.compose(before).apply(10)); // 输出:12
```
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)