JDK8新特性函式式介面的使用示例

2021-10-24 15:34:17 字數 1352 閱讀 9115

jdk8推出了很多新特性,比如:

在寫函式式介面的使用示例之前,先了解如下幾個知識:

文字檔案內容讀取輸出string字串。

大概流程:位元組流 -> 字元流 -> 字元緩衝流,會經過幾次io流的封裝、io流轉換、io流關閉和異常捕獲,很繁瑣。

下面我們通過函式式介面做一下封裝,把前面步驟封裝起來,留最後一步緩衝流讀取為字串的步驟給使用者自己擴充套件,比如包裝成自己想要的字串格式等待。具體**示例下入:

定義函式式介面:

/**

* todo

* * @author wanglingqiang

* @date 2020/10/10 下午6:54

*/@functionalinte***ce

public

inte***ce

bufferprocess

通用業務處理方法(為了方便測試寫成static):

public

static

string

filetobufferreader

(bufferprocess bufferprocess,

file file)}}

catch

(filenotfoundexception e)

catch

(ioexception e)

finally

}

呼叫通用業務處理方法(為了方便測試寫成static):

public

static

string

readfiletostring

(file file)

return sb.

tostring()

;}, file)

;}

測試:

public

static

void

main

(string

args)

輸出結果:

[3813] 07-06 14:50:23 debug ************* start a new one **************

正常讀取了log日誌的內容。

上面的**示例,利用函式式介面實現了封裝不變的,提取變化的,有單一職責的思想,也有策略模式的思想。在實際工作中我也有使用函式式介面,除了示例中的思想,還用了它延時執行的特性。

JDK8新特性 函式式介面

只包含乙個抽象方法的介面,稱為函式式介面。我們可以在乙個介面上使用 functionalinte ce 註解,這樣做可以檢 查它是否是乙個函式式介面。lambda表示式就是乙個函式式介面的例項。所以以前用匿名實現類表示的現在都可以用lambda表示式來寫 根據給定的規則,過濾集合中的字串。此規則由p...

JDK8新特性之函式式介面

函式式介面,有且僅有乙個需要被重寫的抽象方法的介面。這個東西,其實沒什麼好說的,主要就乙個定義,你只要能明白什麼是函式式介面就可以了,出門左拐,劃走吧。lambda表示式的前提就是該介面必須是函式式介面。那麼如何校驗乙個介面是函式式介面呢,如果你清楚函式式介面的定義,那麼你可以用肉眼去看,如果你不清...

JDK8新特性(1) 函式式介面

修飾符 inte ce 介面名稱由於介面中的public abstract是可以省略的,所以函式式介面可以定義為 public inte ce myinte ce functionalinte ce 檢測介面是否為函式式介面 是 編譯成功 functionalinte ce public inte ...