如何在Java中使用Lambda表达式实现DoubleFunction ?
DoubleFunction<R>是一个内置的功能接口中所定义java.util.function包。此接口接受一个双值参数作为输入,并返回类型R的值。由于这是一个功能性的接口,它可以作为一个用过的分配对象为一个lambda表达式或方法的参考。DoubleFunction<R>接口只有一个抽象方法apply()。
语法
@FunctionalInterface public interface DoubleFunction<R> { R apply(double value); }
示例
import java.util.function.DoubleFunction; public class DoubleFunctionTest { public static void main(String[] args) { DoubleFunction<String> getGrade = marks -> { // lambda expression if(marks > 90 && marks <= 100) { return "A"; } else if(marks > 70 && marks <= 90) { return "B"; } else if(marks > 50 && marks <= 70) { return "C"; } else { return "D"; } }; double input = 95; System.out.println("Input Marks: " + input); String grade = getGrade.apply(input); System.out.println("Grade : "+ grade + "\n"); input = 85; System.out.println("Input Marks: " + input); System.out.println("Grade : " + getGrade.apply(input) + "\n"); input = 67; System.out.println("Input Marks: " + input); System.out.println("Grade : " + getGrade.apply(input) + "\n"); input = 49; System.out.println("Input Marks: " + input); System.out.println("Grade : " + getGrade.apply(input)); } }
输出结果
Input Marks: 95.0 Grade : A Input Marks: 85.0 Grade : B Input Marks: 67.0 Grade : C Input Marks: 49.0 Grade : D