JDK1 8新特性函式式介面

2021-10-03 18:51:21 字數 2668 閱讀 6644

對於只有乙個抽象方法的介面,需要這種介面的物件,就可以提供乙個lambda表示式。這種介面稱為函式式介面(functional inte***ce)。

在定義函式式介面的時候可以加入@functionalinte***ce註解來修飾該介面

@documented

@retention

(retentionpolicy.runtime)

@target

(elementtype.type)

public @inte***ce

functionalinte***ce

函式式介面

引數型別

返回型別

抽象方法名

描述其他方法

rnnnable

void

run作為無引數或者返回值的動作執行

supplier

tget

提供乙個t型別的值

consumert

void

accept

處理乙個t型別的資料

andthen

biconsumert ,u

void

accept

處理t型別和u型別的資料

andthen

functiont

r有乙個t型別的引數,返回r型別的值

compse, andthen, identity

bifunctiont,u

r乙個t型別引數,和u型別的引數,返回r型別值

andthen

perdicatet

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...