如何在 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 瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告