1. 程式人生 > >Java8的新特性--函式式介面

Java8的新特性--函式式介面

[TOC](目錄) # 函式式介面 Lambda表示式需要介面的支援,並且介面的抽象方法還只能有一個,要麼沒法區分實現的是哪一個抽象方法了。因此Lambda表示式需要函式式介面的支援 ## 什麼是函式式介面 > 介面中只有一個抽象方法的介面稱為函式式介面。 函式式介面可以使用一個註解@FunctionalInterface修飾,此註解可以檢查是否是函式式介面 ## 函式式介面的使用 假設我們現在有一個需求:對一個數進行運算,什麼運算都可以。如果我們想用Lambda表示式來實現的話,我們就需要一個介面來支援,下面我們先寫一個MyFunction介面 ``` @FunctionalInterface public interface MyFunction { public Integer getValue(Integer num); } ``` 然後我們需要一個運算的方法 ``` //運算方法 public Integer operation(Integer num, MyFunction fun){ return fun.getValue(num); } ``` 測試類 ``` @Test public void test06(){ //平方運算 Integer num = operation(10,(x) -> x*x); System.out.println(num); //加和運算 Integer num2 = operation(100,(y) -> y+200); System.out.println(num2); } ``` 執行結果 ``` 100 300 ``` 不管是什麼運算,我們只需要關注Lambda表示式的方法體如何實現運算就可以了。 通過以上例子發現,如果我們想用Lambda表示式來實現的話,我們就需要寫一個介面來支援,是不是也挺麻煩的,其實,一般我們常用的介面,Java8裡基本都已經給我們提供了,下面來看下Java8內建的核心介面。 ## Java8內建的四大核心函式式介面 ### 一、