Java 中的泛型函数式接口是什么?


lambda 表达式无法指定类型参数,因此它不是泛型的。但是,与 lambda 表达式关联的函数式接口泛型的。在这种情况下,lambda 表达式的目标类型由声明函数式接口引用时指定的参数类型确定。

语法

interface SomeFunc {
 T func(T t);
}

示例

interface MyGeneric<T> {
   T compute(T t);
}
public class LambdaGenericFuncInterfaceTest {
   public static void main(String args[]) {
      MyGeneric<String> reverse = (str) -> {   // Lambda Expression
         String result = "";
         for(int i = str.length()-1; i >= 0; i--)
            result += str.charAt(i);
         return result;
         };
      MyGeneric<Integer> factorial = (Integer n) -> {   // Lambda Expression
         int result = 1;
         for(int i=1; i <= n; i++)
            result = i * result;
         return result;
      };
      System.out.println(reverse.compute("Lambda Generic Functional Interface"));
      System.out.println(factorial.compute(7));
   }
}

输出

ecafretnI lanoitcnuF cireneG adbmaL
5040

更新于:2020 年 7 月 11 日

超过 3 千次浏览

职业启动

完成课程后获得认证

立即开始
广告