如何在 Java 中使用 lambda 表达式实现 DoubleConsumer?
DoubleConsumer 是 java.util.function 包中的一个函数式接口。此函数式接口接受一个 带双引号的值 作为输入,且不产生输出。此接口可以用作 lambda 表达式 或 方法引用 的赋值目标。DoubleConsumer 包含一个抽象方法:accept() 和一个默认方法:andThen()。
语法
@FunctionalInterface public interface DoubleConsumer { void accept(double value); }
示例-1
import java.util.function.DoubleConsumer; public class DoubleConsumerLambdaTest1 { public static void main(String args[]) { DoubleConsumer increment = doubleVal -> { // lambda expression System.out.println("Incrementing " + doubleVal + " by one"); System.out.println("Current Value : "+ (doubleVal+1)); }; DoubleConsumer decrement = doubleVal -> { // lambda expression System.out.println("Decrementing " + doubleVal + " by one"); System.out.println("Current Value : " + (doubleVal-1)); }; DoubleConsumer result = increment.andThen(decrement); result.accept(777); } }
输出
Incrementing 777.0 by one Current Value : 778.0 Decrementing 777.0 by one Current Value : 776.0
示例-2
import java.util.Arrays; import java.util.function.DoubleConsumer; public class DoubleConsumerLambdaTest2 { public static void main(String[] args) { double[] numbers = {4.7d, 7d, 8.2d, 6.8d, 10.5d, 3.2d}; DoubleConsumer dconsumer = d -> System.out.print(d + " "); // lambda expression Arrays.stream(numbers).forEach(dconsumer); } }
输出
4.7 7.0 8.2 6.8 10.5 3.2
广告