如何在 Java 中使用 Lambda 和方法引用实现 LongToIntFunction?


LongToIntFunction java.util.function 包中的一个函数接口,该包在 Java 8中引入。此函数接口接受一个 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 expression
         int intVal = (int)longVal;
         return intVal;
      };

      long input = 757775L;
      System.out.println("The input is: " + input);

      int result = getInt.applyAsInt(input);
      System.out.println("The result is: " + result);
   }
}

输出

The input is: 757775
The result is: 757775


方法引用的示例

import java.util.function.LongToIntFunction;

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

输出

5
10

更新于: 15-Jul-2020

152 浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告