對於只有乙個抽象方法的介面,需要這種介面的物件,就可以提供乙個lambda表示式。這種介面稱為函式式介面(functional inte***ce)。
在定義函式式介面的時候可以加入@functionalinte***ce
註解來修飾該介面
@documented
@retention
(retentionpolicy.runtime)
@target
(elementtype.type)
public @inte***ce
functionalinte***ce
函式式介面
引數型別
返回型別
抽象方法名
描述其他方法
rnnnable
無
void
run作為無引數或者返回值的動作執行
supplier
無
tget
提供乙個t型別的值
consumer
t
void
accept
處理乙個t型別的資料
andthen
biconsumer
t ,u
void
accept
處理t型別和u型別的資料
andthen
function
t
r有乙個t型別的引數,返回r型別的值
compse, andthen, identity
bifunction
t,u
r乙個t型別引數,和u型別的引數,返回r型別值
andthen
perdicate
t
boolean
test
布林值函式
and,or,negate,isequal
supplier
介面
函式抽象方法無引數,返回乙個t型別的值
/**
* @author justlym
* @version 1.0.0 2020/3/11 19:54
**/public
class
supplierdemo
public
static
void
test
(supplier
supplier)
}
consumer
介面/**
* @author justlym
* @version 1.0.0 2020/3/11 19:57
**/public
class
consumerdemo
, s -
>);
}public
static
void
test
(string string, consumer
consumer , consumer
consumer2)
}
perdicate
介面
抽象方法返回布林值,用於方法執行過程中判斷使用
public
class
predicatedemo
}
predicate
介面其他方法/**
* @author justlym
* @version 1.0.0 2020/3/11 20:09
**/public
class
predicatedemo
}
function
介面/**
* @author justlym
* @version 1.0.0 2020/3/11 20:34
**/public
class
functiondemo
/** * 將string型別轉成integer型別
* @param string
* @param function
* @return
*/public
static integer test
(string string, function
function)
/** * 將string型別轉成integer型別,再將integer轉成string型別
* @param string
* @param function
* @param function1
* @return
*/public
static string test
(string string, function
function, function
function1)
}
public
static
void
main
(string[
] args)
JDK1 8新特性 函式式介面
只有乙個抽象方法 object類中的方法除外 的介面是函式式介面 supplier代表乙個輸出 consumer代表乙個輸入 biconsumer代表兩個輸入 function代表乙個輸入,乙個輸出 一般輸入和輸出是不同型別的 unaryoperator代表乙個輸入,乙個輸出 輸入和輸出是相同型別的...
JDK1 8新特性 函式式介面測試
jdk1.8新特性 函式式介面測試 函式式介面指僅僅包含乙個抽象方法的介面,每乙個該型別的方法都會匹配到這個抽象方法 預設方法不算抽象方法,也可以給函式式介面新增預設方法 函式式介面宣告 在介面上面加註解 functionalinte ce,如果編譯器發現該介面下面有多於乙個的抽象方法,就會報錯 a...
JDK1 8 函式式介面
前言 公司專案中大量使用了該新特性,故對此進行學習總結 consumer消費型介面 之所以叫做消費型按照我的理解 消費 邏輯處理 傳入的資料 抽象方法 void accept t t 接收乙個引數進行消費,但無需返回結果。介面.accept x 意思就是將x的引數,帶入到介面裡去執行 預設方法 an...