如何在 Java 中使用 lambda 表达式和方法引用实现 DoubleUnaryOperator?

java 8object oriented programmingprogramming更新于 2025/4/23 10:37:17

DoubleUnaryOperator 是定义在 java.util.function 包中的函数式接口。该函数式接口接受一个 double 类型的参数作为输入,但输出结果也是 double 类型的。DoubleUnaryOperator 接口可以用作 lambda表达式方法引用赋值目标。该接口包含一个抽象方法:applyAsDouble(),一个静态方法:identity()和两个默认方法:andThen()compose()

语法

@FunctionalInterface
public interface DoubleUnaryOperator {
 double applyAsDouble(double operand);
}

Lambda 表达式示例

import java.util.function.DoubleUnaryOperator;
public class DoubleUnaryOperatorTest1 {
   public static void main(String[] args) {
      DoubleUnaryOperator getDoubleValue = doubleValue -> { // lambda 表达式
         return doubleValue * 2;
      };
      double input = 20.5;
      double result = getDoubleValue.applyAsDouble(input);
      System.out.println("The input value " + input + " X 2 is : " + result);
      input = 77.50;
      System.out.println("The input value " + input+ " X 2 is : " + getDoubleValue.applyAsDouble(input));
      input = 95.65;
      System.out.println("The input value "+ input+ " X 2 is : " + getDoubleValue.applyAsDouble(input));
   }
}

输出

The input value 20.5 X 2 is : 41.0
The input value 77.5 X 2 is : 155.0
The input value 95.65 X 2 is : 191.3


方法引用示例

import java.util.function.DoubleUnaryOperator;
public class DoubleUnaryOperatorTest2 {
   public static void main(String[] args) {
      DoubleUnaryOperator d = Math::cos;    // 方法引用
      System.out.println("The value is: " + d.applyAsDouble(45));

      DoubleUnaryOperator log = Math::log10;    // 方法引用 
      System.out.println("The value is: " + log.applyAsDouble(100));
   }
}

输出

The value is: 0.5253219888177297
The value is: 2.0

相关文章