java 8新特性學習之三:Java 8 lambda表示式初步第三回
一、泛型函式式介面
lambda表示式自身不能指定型別引數。因此,lambda表示式不能是泛型。然而,與lambda表示式關聯的函式式介面可以是泛型。此時,lambda表示式的目標型別部分由宣告函式式介面引用時指定的引數型別決定。
interface SomeFunc<T>{
T func(T t);
}
class GenericFunctionalInterfaceDemo{
public static void main(String args[]){
SomeFunc<String> reverse = (str)->{
String result = "";
int i;
for(i = str.length()-1;i>=0;i--){
result += str.charAt(i);
}
return result;
};
System.out.println("lambda reversed is"+reverse.func("lambda"));
System.out.println("Expression reversed is"+reverse.func("Expression"));
SomeFunc<Integer> factorial= (n)->{
int result = 1;
for(int i=1;i<=n;i++){
result = i*result;
}
return result;
};
System.out.println("The factoral of 3 is "+factorial.func(3));
System.out.println("The factoral of 5 is "+factorial.func(5));
}
}
輸出如下所示:
lambda reversed is adbmaL
Expression reversed is noisserpxE
The factoral of 3 is 6
The factoral of 5 is 120
在程式中,泛型函式式介面SomeFunc的宣告如下所示:
interface SomeFunc<T>{
T func(T t);
}
其中,T指定了func()函式的返回型別和引數型別。這意味著它與任何接受一個引數,關返回一個相同型別的值的lambda表示式相容。
相關文章
- java 8新特性學習之五:Java 8 lambda表示式初步第五回Java
- java 8新特性學習之四:Java 8 lambda表示式初步第四回Java
- Java 8新特性學習之一:Java 8 lambda表示式初步第六回Java
- java 8新特性學習之二:Java 8 lambda表示式初步第二回Java
- Java 8新特性學習之一:Java 8 lambda表示式初步第一回Java
- Java 8新特性(一):Lambda表示式Java
- Java8新特性(1):Lambda表示式Java
- Java8新特性(一)-Lambda表示式Java
- java8 新特性之Lambda 表示式Java
- Java8 新特性之 Lambda 表示式Java
- java8特性-lambda表示式Java
- java8新特性之lambda表示式(一)Java
- Java 8 流特性和 Lambda 表示式Java
- Java8新特性第1章(Lambda表示式)Java
- [轉]Java 8 的 lambda 表示式 Java 8 的 lambda 表示式Java
- java8學習:lambda表示式(2)Java
- java8學習:lambda表示式(1)Java
- Java8新特性——從Lambda表示式到Stream流Java
- Java 8新特性:lambda表示式(四)轉載總結Java
- Java 8 Lambda 表示式Java
- java 8 lambda表示式Java
- Java 8 Lambda 表示式學習心得總結Java
- java8的新特性之lambda表示式和方法引用Java
- Java8新特性 - LambdaJava
- Java8-Lambda表示式Java
- java8 lambda表示式Java
- 掌握 Java 8 Lambda 表示式Java
- Java8新特性系列-LambdaJava
- Java8新特性系列(Lambda)Java
- Java8 新語法習慣 (級聯 lambda 表示式)Java
- Java8的Lambda表示式Java
- Java 8 中的 lambda 表示式Java
- 深入探索 Java 8 Lambda 表示式Java
- 深圳Java培訓學習:Java8.0新特性之Lambda表示式Java
- 好程式設計師分享java8新特性之Lambda表示式程式設計師Java
- 【java8新特性】蘭姆達表示式Java
- Java8特性詳解 lambda表示式(一):使用篇Java
- java8新特性學習Java