一前言:
本章主要會介紹當前時下最流行的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流式計算進行講解,這篇文章相當於是對下一篇文章的鋪墊。
最後歡迎有任何疑問的小夥伴,在評論區提出,我會有問必答。