只有乙個抽象方法的介面
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...