📅  最后修改于: 2023-12-03 14:42:12.569000             🧑  作者: Mango
在Java 8中引入了一个新的函数式接口 DoubleSupplier,该接口表示一个无参的函数,它返回一个 double 值。该接口没有任何参数,也不需要指定任何过程,只需要实现 getAsDouble() 方法返回值即可。
该接口常常被用来生成一些无限的 double 值,使用 Lambda 表达式可以轻松地实现一个 DoubleSupplier:
DoubleSupplier randomSupplier = () -> Math.random();
System.out.println(randomSupplier.getAsDouble());
上述代码将打印出一个随机生成的 double 值。
DoubleSupplier 接口只定义了一个方法 getAsDouble(),该方法没有任何参数,返回一个 double 类型的值。
@FunctionalInterface
public interface DoubleSupplier {
double getAsDouble();
}
以下示例演示了如何使用 DoubleSupplier 生成一组连续增加的 double 值:
DoubleSupplier increasingSupplier = new DoubleSupplier() {
double value = 10.0;
@Override
public double getAsDouble() {
value++;
return value;
}
};
for (int i = 1; i <= 5; i++) {
System.out.println(increasingSupplier.getAsDouble());
}
输出:
11.0
12.0
13.0
14.0
15.0
上述示例中,我们使用了匿名内部类来实现 DoubleSupplier 接口,并使用一个 double 类型的变量来存储当前值,每次调用 getAsDouble() 方法时将该变量自增并返回。
DoubleSupplier 是一个简单、轻量级的函数式接口,它只有一个方法 getAsDouble(),用来返回一个 double 类型的值。
它常常用于生成一些无限的 double 值,使用 Lambda 表达式可以很容易地实现一个 DoubleSupplier。如在上面的示例中,我们使用 Lambda 表达式实现了一个无限生成随机数的 DoubleSupplier。