函式式介面

2021-10-04 22:41:03 字數 1722 閱讀 2976

只有乙個抽象方法的介面

public

inte***ce

myinte***ce

注意,函式式介面可以有其他方法,但是抽象方法只能有乙個。當在乙個介面中有很多方法的時候可以用 @functionalinte***ce註解來判斷此介面是否為函式式介面。如果介面中沒有或存在2個及以上的抽象方法,新增註解會編譯報錯。

//錯誤示範

@functionalinte***ce

public

inte***ce

myinte***ce

一般來說是作為乙個方法的引數來傳遞

public

class

demo

private

static

void

dosomething

(myinte***ce inter)

}

@functionalinte***ce

public

inte***ce

myinte***ce

public

class

myinte***ceimpl

implements

myinte***ce

}

利用lambda的延遲性可以避免效能浪費

例一

public

class

demo

private

static

void

testmethod

(int level, string msg)

}}

例二

public

class

demo

private

static

void

testmethod

(int level, myinte***ce inter)

}}

分析:例一中先是對msga,msgb,msgc進行拼接,然後在傳遞,也就是說 level 不管是不是1,都會有拼接這個步驟,即使最後不滿足條件不能輸出;例二中是最後滿足條件才有拼接這個步驟,如果不滿足是不會有拼接這個步驟,這樣就避免了效能浪費。

supplier介面

僅包含乙個無參的方法:t get()。

@functionalinte***ce

public

inte***ce

supplier

public

class

demo

private

static string getstring

(supplier

function)

}

consumer介面

與supplier介面相反,它不是生產乙個資料,而是消費乙個資料

public

class

demo

private

static

void

consumestring

(consumer

function)

}

函式式介面

在oop中方法中的引數傳遞的資料,而函式式介面傳遞的是一種行為。如果乙個介面只有乙個抽象方法,那麼這個介面就是函式式介面 如果在某個介面上宣告了 functionalinte ce 註解,那麼編譯器會按照函式式介面的定義來約束該介面。public class mydemo public static...

函式式介面

jdk提供我們的常用函式式介面 supplier consumner predicate function 02 函式式介面的概念 函式式介面的定義 概念 有且僅有乙個抽象方法的介面 functionalinte ce 告訴編譯器,我當前這個介面是函式式介面 編譯器就會檢測當前介面是不是有且僅有乙個...

函式式介面

函式式介面 有且只有乙個抽象方法的介面,稱之為函式式介面 當然介面中可以包含其他的 方法 預設,靜態,私有 functionalinte ce註解 作用 可以檢測介面是否是乙個函式式介面 是 編譯成功 否,編譯失敗 介面中沒有抽象方法,或者抽象方法有多個 functionalinte ce publ...