實現方式二
實現方式三
**演示
//方式一的執行緒類
public
class
myrunnable
implements
runnable
}public
class
lambdademo
// }).start();
//方式三
newthread((
)->).
start()
;}}
函式式程式設計思想概述
函式式思想則盡量忽略物件導向的複雜語法:「強調做什麼,而不是以什麼形式去做」
而我們要學習的lambda表示式就是函式式思想的體現
組成lambda表示式的三要素:
練習描述
無參無返回值抽象方法的練習
操作步驟
示例**
//介面
public
inte***ce
eatable
//實現類
public
class
eatableimpl
implements
eatable
}//測試類
public
class
eatabledemo})
;//lambda表示式
useeatable((
)->);
}private
static
void
useeatable
(eatable e)
}
示例**
public
inte***ce
flyable
public
class
flyabledemo})
; system.out.
println
("--------");
//lambda
useflyable
((string s)
->);
}private
static
void
useflyable
(flyable f)
}
示例**
public
inte***ce
addable
public
class
addabledemo);
}private
static
void
useaddable
(addable a)
}
**演示
public
inte***ce
addable
public
inte***ce
flyable
public
class
lambdademo
);//引數的型別可以省略
useaddable
((x, y)
->);
// useflyable((string s) -> );
//如果引數有且僅有乙個,那麼小括號可以省略
// useflyable(s -> );
//如果**塊的語句只有一條,可以省略大括號和分號
useflyable
(s -
> system.out.
println
(s))
;//如果**塊的語句只有一條,可以省略大括號和分號,如果有return,return也要省略掉
useaddable
((x, y)
-> x + y);}
private
static
void
useflyable
(flyable f)
private
static
void
useaddable
(addable a)
}
使用限制不同
實現原理不同
注意事項
引用類方法,其實就是引用類的靜態方法
**演示
public
inte***ce
converter
public
class
converterdemo
private
static
void
useconverter
(converter c)
}
使用說明
lambda表示式被類方法替代的時候,它的形式引數全部傳遞給靜態方法作為引數
引用物件的例項方法,其實就引用類中的成員方法
**演示
public
class
printstring
}public
inte***ce
printer
public
class
printerdemo
private
static
void
useprinter
(printer p)
}
使用說明
lambda表示式被物件的例項方法替代的時候,它的形式引數全部傳遞給該方法作為引數
引用類的例項方法,其實就是引用類中的成員方法
**演示
public
inte***ce
mystring
public
class
mystringdemo
private
static
void
usemystring
(mystring my)
}
使用說明
lambda表示式被類的例項方法替代的時候
第乙個引數作為呼叫者
後面的引數全部傳遞給該方法作為引數
引用構造器,其實就是引用構造方法
**演示
public
class
student
public
student
(string name,
int age)
public string getname()
public
void
setname
(string name)
public
intgetage()
public
void
setage
(int age)
}public
inte***ce
studentbuilder
public
class
studentdemo
private
static
void
usestudentbuilder
(studentbuilder sb)
}
使用說明
lambda表示式被構造器替代的時候,它的形式引數全部傳遞給構造器作為引數
Lambda表示式之方法引用
方法引用可以被看做僅僅呼叫特定方法的lambda的一種快捷寫法。它的基本思想是,如果乙個lambda代表的只是 直接呼叫這個方法 那最好還是用名稱來呼叫它,而不是去描述如何呼叫它。事實上,方法引用就是讓你根據已有的方法實現來建立lambda表示式。但是,顯式地指明方法的名稱,你的 可讀性會更好。方法...
java方法引用替代lambda表示式
方法引用 當lambda表示式中僅僅呼叫乙個已經存在的方法時,我們就可以使用方法引用代替lambda表示式。這樣 可以讓程式進一步簡潔。方法引用分為以下四種 1 引用靜態方法 2 通過物件 引用 引用例項方法 3 通過型別引用例項方法 4 引用構造器 public class methodrefer...
Java之Lambda表示式 方法引用
本片部落格主要介紹介紹jdk1.8推出的新特性 jdk1.8之後介面出現以下兩類方法 a.在介面中使用default定義的普通方法,需要通過介面物件來呼叫 b.在介面中使用static定義的靜態方法,直接使用介面呼叫。範例 inte ce iinte ce 使用static定義的靜態方法 lambd...