Java面向接口編程之四大核心接口(進階必會)

一前言:

本章主要會介紹當前時下最流行的java四大核心接口類,掌握該四大方法之後,不僅會讓你感到前所未有的興奮,同時對於你後期閱讀源碼都有極大的好處,如果你不熟悉接口編程,很多源代碼你都看不懂比如:
java新特性:流式計算源代碼:

Stream<T> filter(Predicate<? super T> predicate);
Stream<R> map(Function<? super T, ? extends R> mapper);

以上代碼現在看,有些人可能會很懵逼,但是放心,接下來看完這篇文章之後,你一定會感到一種煥然大悟,甚是簡單的感覺,那廢話不多說了,直接開始接口函數的奇妙之旅吧!

二,四大核心接口

1函數型接口方法
Function<T,R>
可以發現,上面的源代碼就使用到了這個方法;
T 參數類型 R 返回類型
該方法既有傳入參數也要有返回類型
好比如下簡單代碼:

public int xxx(String x){
return 123;
}

此處的參數類型String就好比是上面的T,返回類型int就好比是R.
有個簡單認識之後,我們接下來看源碼:

public interface Function<T, R> {
    R apply(T t);
    //省略default聲明的方法
}

看完這個源碼,對比上面所講的例子,相信你一下子就明白了,T和R的意思

需要實現的內部方法:
R apply(T t)

同樣這裏寫一個例子,原理結合例子,加深理解

//創建對象
 Function<Integer,String> function=s->{
            return "參數S的類型是Integer類型,返回類型是String";
//調用方法&&結果輸出
  System.out.println(function.apply(123));

2判定型接口
Predicate< T >

同樣該方法在最開始的舉例源碼中也出現了
T 參數類型
判定型接口,通常用來判定,返回參數是boolean,比如判定輸入的參數是否爲空,是否包含對應字符串等等

如下源碼:

public interface Predicate<T> {
    boolean test(T t);
    }

可以清楚看到該內部方法的返回類型爲boolean

簡單例子:

        Predicate<Integer> predicate= p->{
            return p>0;
        };
        System.out.println(predicate.test(11));

3消費型接口
Consumer< T >

該接口的T爲參數類型,無返回類型
(可以理解爲,參數被該方法吃了,所以就沒有可返回的數據了)
源碼:

public interface Consumer<T> {
    void accept(T t);
    }

可以看到,內部方法爲void類型,無返回值

簡單例子:

 Consumer<Integer>  consumer=c->{
                System.out.println("傳入的參數值爲"+c);
        };
        consumer.accept(111);

4供給型接口
Supplier< T >

無參數,有返回值,類型爲T
(可以這樣理解:
Consumer爲消費者,Predicate爲生產者,一個消費參數,一個生產參數)
源碼:

public interface Supplier<T> {
    T get();
}

可以看到其內部方法爲get(),返回類型爲T
簡單例子:

          Supplier<String> supplier=()->{
              return "即使沒有傳入參數,但我是生產者,給你製造數據並返回";
          };
          System.out.println(supplier.get());

三,總結

以上即是對java的四大核心接口的簡單源碼介紹和實例講解,目前java的源碼基本上都是會面向接口的方式,使得其如此龐大的代碼有序可尋,使我們開發者看源碼也更加清晰易懂。
另外還有需要注意的是:
該四大方法,都是屬於Java.util.function下的類。
開篇所舉例的源碼是引於java的Stream流式計算,也是java編程的未來新標向,下一篇會對java的Stream流式計算進行講解,這篇文章相當於是對下一篇文章的鋪墊。
最後歡迎有任何疑問的小夥伴,在評論區提出,我會有問必答。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章