方法引用可以被看做僅僅呼叫特定方法的lambda的一種快捷寫法。它的基本思想是,如果乙個lambda代表的只是」直接呼叫這個方法「,那最好還是用名稱來呼叫它,而不是去描述如何呼叫它。
事實上,方法引用就是讓你根據已有的方法實現來建立lambda表示式。但是,顯式地指明方法的名稱,你的**可讀性會更好。
方法引用主要有三類:
(1)指向靜態方法的方法引用(例如integer的parseint方法,寫作integer::parseint)
(2)指向任意型別例項方法的方法引用(例如string的length方法,寫作string::length)
(3)指向現有物件的例項方法的方法引用(假設你有乙個區域性變數expensivetransaction用於存放transaction
第一種很好理解,就是靜態方法
第二種就是你在引用乙個物件的方法,而這個物件本身是lambda的乙個引數。
例如:lambda表示式(string s) - > s.touppercase()可以寫作string::touppercase。
第三種就是你在lambda中呼叫乙個已經存在的外部物件中的方法。
例如:lambda表示式()-> expensivetransaction.getvalue()可以寫作expensivetransaction::getvalue。
對於乙個現有建構函式,可以利用它的名稱和關鍵字new,來建立乙個它的乙個引用:classname::new。它的功能與指向靜態方法的引用類似。
:new
;get()
;等價於:
c1 =()
->
new();
get();
:new;(
110)
;這等價於:
c2 =
(weight)
->
new(weight);(
110)
;
Java之Lambda表示式 方法引用
本片部落格主要介紹介紹jdk1.8推出的新特性 jdk1.8之後介面出現以下兩類方法 a.在介面中使用default定義的普通方法,需要通過介面物件來呼叫 b.在介面中使用static定義的靜態方法,直接使用介面呼叫。範例 inte ce iinte ce 使用static定義的靜態方法 lambd...
三十 Lambda表示式 方法引用
實現方式二 實現方式三 演示 方式一的執行緒類 public class myrunnable implements runnable public class lambdademo start 方式三 newthread start 函式式程式設計思想概述 函式式思想則盡量忽略物件導向的複雜語法 ...
java方法引用替代lambda表示式
方法引用 當lambda表示式中僅僅呼叫乙個已經存在的方法時,我們就可以使用方法引用代替lambda表示式。這樣 可以讓程式進一步簡潔。方法引用分為以下四種 1 引用靜態方法 2 通過物件 引用 引用例項方法 3 通過型別引用例項方法 4 引用構造器 public class methodrefer...