如何在Java中使用lambda和方法引用实现DoubleSupplier?
DoubleSupplier 接口是java.util.function包中定义的 内置功能接口。该功能接口不需要任何输入,但是会产生双值输出。DoubleSupplier 接口可用作lambda 表达式 和方法 引用的分配目标。 此接口仅包含一个抽象方法:getAsDouble()。
语法
@FunctionalInterfacepublic interface DoubleSupplier {
double getAsDouble();
}Lambda表达式示例
import java.util.concurrent.ThreadLocalRandom;
import java.util.function.DoubleSupplier;
public class DoubleSupplierLambdaTest {
public static void main(String args[]) {
DoubleSupplier getRandomDouble = () -> { // lambda 表达式
double doubleVal = ThreadLocalRandom.current().nextDouble(0000, 9999);
return Math.round(doubleVal);
};
double randomVal = getRandomDouble.getAsDouble();
System.out.println("Random Double Generated : " + randomVal);
System.out.println("Random Double Generated : " + getRandomDouble.getAsDouble());
System.out.println("Random Double Generated : " + getRandomDouble.getAsDouble());
}
}输出结果
Random Double Generated : 4796.0 Random Double Generated : 2319.0 Random Double Generated : 7403.0
方法引用示例
import java.util.function.DoubleSupplier;
public class DoubleSupplierMethodRefTest {
public static void main(String args[]) {
DoubleSupplier random = Math::random; //方法引用
for(int i = 0; i < 5; ++i) {
System.out.println("random number between 1 to 100: " + (random.getAsDouble() * 100) );
}
}
}输出结果
random number between 1 to 100: 65.72186642095294 random number between 1 to 100: 42.389730890035146 random number between 1 to 100: 16.89589518236835 random number between 1 to 100: 45.85184122201681 random number between 1 to 100: 2.626718898776015
热门推荐
10 香港老妈结婚祝福语简短
11 毕业立体贺卡祝福语简短
12 简短新年年会祝福语
13 评论小品祝福语大全简短
14 恭喜师兄结婚祝福语简短
15 员工集体辞职祝福语简短
16 高中新生祝福语 简短
17 装修祝福语男生搞笑简短
18 生日开业蛋糕祝福语简短