Java中使用lambda和方法引用实现LongToIntFunction

LongToIntFunction Java 8 引入的java.util.function包的功能接口。该功能接口接受long值参数作为输入,并产生一个(int)整数值的结果。LongToIntFunction接口可用作lambda 表达式方法引用的分配目标。此接口仅包含一个抽象方法:applyAsInt(),不包含任何默认方法和抽象方法。

语法

@FunctionalInterface
interface LongToIntFunction {
   int applyAsInt(long value);
}

Lambda表达式示例

import java.util.function.LongToIntFunction;

public class LongToIntLambdaTest {
   public static void main(String args[]) {
      LongToIntFunction getInt = longVal -> {       
            //lambda表达式       
            int intVal = (int)longVal;
         return intVal;
      };

      long input = 757775L;
      System.out.println("输入的是: " + input);

      int result = getInt.applyAsInt(input);
      System.out.println("结果是: " + result);
   }
}

输出结果

输入的是: 757775
结果是: 757775

方法引用示例

import java.util.function.LongToIntFunction;

public class LongToIntFunctionMethodRefTest {
   public static void main(String[] args) {
      LongToIntFunction result = LongToIntFunctionMethodRefTest::convertLongToInt;   
      //方法引用      
      System.out.println(result.applyAsInt(50));
      System.out.println(result.applyAsInt(100));
   }
   static Integer convertLongToInt(long value) {
      return (int) value / 10;
   }
}

输出结果

5
10