如何使用 Java 中的 Lambda 和方法引用来实现 IntToDoubleFunction?


IntToDoubleFunctionjava.util.function 包中的一个函数接口。此函数接口接受一个**整型**参数并产生一个**双精度**结果。IntToDoubleFunction 可用作**lambda 表达式**或**方法引用**的赋值目标。它只包含一个抽象方法:applyAsDouble()

语法

@FunctionalInterface
interface IntToDoubleFunction {
   double applyAsDouble(int value);
}

Lambda 表达式的示例

import java.util.function.IntToDoubleFunction;;

public class IntToDoubleLambdaTest {
   public static void main(String[] args) {
      IntToDoubleFunction getDouble = intVal -> {      // lambda expression
         double doubleVal = intVal;
         return doubleVal;
      };

      int input = 25;
      double result = getDouble.applyAsDouble(input);
      System.out.println("The double value is: " + result);

      input = 50;
      System.out.println("The double value is: " + getDouble.applyAsDouble(input));

      input = 75;
      System.out.println("The double value is: " + getDouble.applyAsDouble(input));
   }
}

输出

The double value is: 25.0
The double value is: 50.0
The double value is: 75.0


方法引用的示例

import java.util.function.IntToDoubleFunction;

public class IntToDoubleMethodRefTest {
   public static void main(String[] args) {
      IntToDoubleFunction result = IntToDoubleMethodRefTest::convertIntToDouble; // method reference
      System.out.println(result.applyAsDouble(50));
      System.out.println(result.applyAsDouble(100));
   }
   static Double convertIntToDouble(int value) {
      return value / 10d;
   }
}

输出

5.0
10.0

更新于: 2020 年 7 月 14 日

155 次浏览

开启你的职业生涯 

完成课程即可获得证书

开始入门
广告