java Function.identity() 有啥用
时间: 2024-02-06 12:42:05 浏览: 35
`Function.identity()` 是 Java 8 中添加的一种函数式接口,它返回一个接收一个参数并返回该参数的函数。简单来说,就是它返回一个标识函数,即输入什么就输出什么。
`identity()` 方法通常用于方法引用和流操作中。在方法引用中,可以使用 `identity()` 方法作为目标方法。例如,假设我们有一个 List,我们想将其转换为另一个 List,但保留原来的元素值。我们可以使用 `map()` 方法和 `identity()` 方法来实现:
```
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> sameNumbers = numbers.stream()
.map(Function.identity())
.collect(Collectors.toList());
```
在上面的代码中,`map()` 方法将每个元素应用于 `identity()` 函数,这样它就返回原始元素本身。然后,我们可以使用 `collect()` 方法将流转换为 List。
此外,在某些情况下,我们需要传递一个函数作为参数,但我们不想对该函数进行任何操作。这种情况下,可以使用 `identity()` 方法作为默认函数。
总之,`Function.identity()` 可以方便地创建一个标识函数,并且在流操作中或作为默认函数时特别有用。