lambda表示式理解為簡介的表示可傳遞的匿名函式的一種方式。
匿名,與普通的方法不同,沒有明確的名稱;
函式,不像普通方法那樣屬於某個特定的類,但是他和方法一樣都具有引數列表、函式主體、返回型別、還有可能有丟擲異常的列表;
傳遞,可以作為引數傳遞給方法或儲存在變數中;
簡潔,無需像匿名類那樣寫很多的模版**,寫的少而想的多;
例子定義乙個comparator(比較器)物件
箭頭
___|
|> a1.
getweight()
.compareto
(a2.
getweight()
);|_________________|
|_______________________________________|
lambda引數 lambda主體
函式式介面就是只定義了乙個抽象方法的介面
在函式式介面中使用,lambda表示式允許你直接以內聯的形式為函式式介面的抽象方法提供實現,並把整個表示式作為函式式介面的例項。
使用lambda的例項
下面的**只能讀取檔案第一行,是很侷限的,你需要一種方法把行為傳遞給processfile,以便他可以利用bufferedreader執行不同的行為。
public
static string processfile()
throws ioexception
}}
2.1記得行為引數化
上述的需求需要行為引數化,傳遞行為正是lamda的拿手好戲。
2.2使用函式式介面來傳遞行為
建立乙個函式式介面
@functioninte***ce
public
inte***ce
bufferedreaderprocessor()
2.3執行乙個行為
public
static string processfile
(bufferedreaderprocessor p)
throws ioexception
}
2.4傳遞lambda表示式
string oneline =
processfile
((bufferedreader br)
-> br.
readline()
);//處理一行
string oneline =
processfile
((bufferedreader br)
-> br.
readline()
+ br.
readline()
);//處理兩行
jdk8新特性 lambda表示式
1 什麼是lambda表示式?lambda表示式 也叫做閉包 是jdk8中的新語法,它允許我們將函式當成引數傳遞給某個方法或者將 本身作為資料進行處理。2 lambda表示式示例 2.1 用lambda表示式實現runnable 通過匿名內部類方法重寫runnable介面 new thread ne...
JDK8 新特性 Lambda 表示式
lambda 表示式概訴 對介面進行實現呼叫 中代表著介面的入引數 中內容是介面的實現 當 中的引數有切僅有乙個時 本身可以省略 同理 當方法實現有切僅有一行時 本身也可以省略 宣告介面 public inte ce personsaymethod使用介面 public class lambdate...
JDK8新特性之Lambda表示式
lambda表示式主要是替換了原有匿名內部類的寫法,也就是簡化了匿名內部類的寫法。lambda語法結構 引數1,引數2.先看乙個使用匿名內部類定義乙個新執行緒的方法 test public void test1 start for int x 0 x 100 x 使用lambda表示式則可以簡化匿名...