在Java中如何使用lambda和方法参考来实现LongBinaryOperator?

LongBinaryOperator是java.util.function包中函数接口的一部分。 此函数接口需要两个Long类型的参数作为输入,并生成Long类型的结果。 LongBinaryOperator接口可以用作lambda表达式或方法引用的赋值目标。 它只包含一个抽象方法applyAsLong()。

语法

@FunctionalInterface
public interface LongBinaryOperator {
   long applyAsLong(long left, long right)
}

Lambda表达式示例

import java.util.function.LongBinaryOperator;

public class LongBinaryOperatorTest1 {
   public static void main(String[] args) {      
       LongBinaryOperator multiply = (a,b) -> {      // lambda 表达式
         return a*b;
      };
      long a = 10;
      long b = 20;
      long result = multiply.applyAsLong(a,b);
      System.out.println("a*b等于: " + result);

      a = 20;
      b = 30;
      System.out.println("a*b等于: " + multiply.applyAsLong(a,b));

      a = 30;
      b = 40;
      System.out.println("a*b等于: " + multiply.applyAsLong(a,b));
   }
}

输出结果

a*b等于: 200
a*b等于: 600
a*b等于: 1200

方法引用示例

import java.util.function.LongBinaryOperator;

public class LongBinaryOperatorTest2 {
   public static void main(String[] args) {
      LongBinaryOperatorTest2 instance = new LongBinaryOperatorTest2();
      LongBinaryOperator test = instance::print;     //方法引用 
      System.out.println("l1和l2之和: " + test.applyAsLong(50, 70));
   }
   long print(long l1, long l2) {
      return l1+l2;
   }
}

输出结果

l1和l2之和: 120