Java 8新特性學習之一:Java 8 lambda表示式初步第一回
這幾天正在學關於Java lambda表示式,在這裡就自己學習的一點心得體會寫一上,就當我的讀書筆記吧。
函數語言程式設計在我的初步理解來看,就是相當於JavaScript中的Function型別。就是可以把方法當成引數進行傳遞。
lambda表示式有兩個重要的結構:一、lambda表示式自身。二、函式式介面。
lambda表示式本質上就是匿名方法,主要用於為函式式介面所定義的方法提供一個實現。也就是為lambda表示式會提供一個匿類,因為些lambda有時候也會被稱為閉包。
函式式介面,是指只提供有一個抽象方法定義的介面。在Java8之前介面中的方法是不提供方法實現的,但是在Java8中介面中的方法是可以提供預設實現的。所以函式式介面,在Java8之中的定義是:“只提供有一個沒有預設實現的抽象方法的介面”。
一、lambda表示式的使用。
下面舉一個例子:
//函式式介面
public interface Abc{
public double getValue();
}
Abc abc = ()->123.0;
當呼叫abc.getValue();函式接返回123.0。
需要重點指出的是,lambda表示式在引數型別和數量、返回型別以及發生的異常都需要被函式式介面的方法所接受。
當需要為lambda表示式指定引數時,
(int n)->123.0*n;
當然引數型別是可以不寫的,這個可以通過函式式介面中定義的方法引數推斷。當lambda表示式引數只有一個時括號是可以省略的。
n->123.0*n;
這部分還有最後一點是,如果lambda表示式有兩個引數時引數型別。如果省略都省略,不然都要寫上。
(n,b)->123.0*n*b;
(int n,int b)->123.0*n*b;
但是這樣寫是錯的:
(int n,b)->123.0*n*b;
先寫這些,剩下的等我看完書在寫。^_^
相關文章
- 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