📜  Java 8 |带有示例的 DoubleSupplier 接口(1)

📅  最后修改于: 2023-12-03 14:42:12.569000             🧑  作者: Mango

Java 8 |带有示例的 DoubleSupplier 接口

在Java 8中引入了一个新的函数式接口 DoubleSupplier,该接口表示一个无参的函数,它返回一个 double 值。该接口没有任何参数,也不需要指定任何过程,只需要实现 getAsDouble() 方法返回值即可。

该接口常常被用来生成一些无限的 double 值,使用 Lambda 表达式可以轻松地实现一个 DoubleSupplier:

DoubleSupplier randomSupplier = () -> Math.random();
System.out.println(randomSupplier.getAsDouble()); 

上述代码将打印出一个随机生成的 double 值。

DoubleSupplier 方法

DoubleSupplier 接口只定义了一个方法 getAsDouble(),该方法没有任何参数,返回一个 double 类型的值。

@FunctionalInterface
public interface DoubleSupplier {
    double getAsDouble();
}
DoubleSupplier 示例

以下示例演示了如何使用 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。