我想知道 Unary-Operator 和 Consumer 函数式接口有什么区别?
最终,他们都得到了一个函数并将其应用于通用 T。
提前谢谢您!
Consumer 是一种采用泛型类型 T 的参数并且没有返回值(void)的方法。 UnaryOperator 是一种采用泛型类型 T 的参数并返回相同类型 (T) 的值的方法。
示例:
//Traditionally:
public List<Integer> double(List<Integer> numbers) {
List<Integer> doubleNumbers = new ArrayList<>();
for (Integer number : numbers) {
doubleNumbers.add(number * 2);
}
return doubleNumbers;
}
//With UnaryOperator:
UnaryOperator<Integer> double = n -> n * 2;
List<Integer> doubleNumbers = numbers.stream()
.map(double)
.collect(Collectors.toList());
Unary-Operator 函数接口返回一些结果,但是 消费者功能界面没有 https://docs.oracle.com/javase/8/docs/api/java/util/function/Consumer.html https://docs.oracle.com/javase/8/docs/api/java/util/function/UnaryOperator.html