Java常用函數(shù)式接口總結(jié)
四大函數(shù)式接口
新時(shí)代的程序員:lambda 表達(dá)式,鏈?zhǔn)骄幊?,函?shù)式接口,Stream 流式計(jì)算
函數(shù)式接口: 只有一個(gè)方法的接口
@FunctionalInterface
public interface Runnable {
public abstract void run();
}
//超級(jí)多FunctionalInterface
//簡(jiǎn)化編程模型,在新版本的框架底層大量應(yīng)用!
//foreach(消費(fèi)者類型的函數(shù)式接口)

代碼測(cè)試:

Function 函數(shù)式接口
package com.function;
import java.util.function.Function;
/**
* Function 函數(shù)型接口,有一個(gè)輸入?yún)?shù),有一個(gè)輸出
* 只要是函數(shù)型接口 可以 用lambda 表達(dá)式簡(jiǎn)化
*/
public class Demo01 {
public static void main(String[] args) {
//工具類:輸出輸入的值
// Function function = new Function<String,String>() {
// @Override
// public String apply(String o) {
// return o;
// }
// };
//System.out.println(function .apply("asd"));
Function<String,String> function= (str)->{return str;};
System.out.println(function.apply("asd"));
}
}
輸出結(jié)果:asd
斷定型接口:有一個(gè)輸入?yún)?shù),返回值只能是布爾值!

package com.function;
import java.util.function.Predicate;
/**
* 斷定型接口,有一個(gè)輸入?yún)?shù),返回值只能是布爾值!
*/
public class Demo02 {
public static void main(String[] args) {
//判斷字符串是否為空
// Predicate<String> predicate = new Predicate<String>() {
// @Override
// public boolean test(String str) {
// return str.isEmpty();
// }
// };
Predicate<String> predicate =(str)->{
return str.isEmpty();
};
System.out.println(predicate.test("asd"));
}
}
輸出結(jié)果:false
Consumer 消費(fèi)型接口

package com.function;
import java.util.function.Consumer;
/**
* Consumer 消費(fèi)型接口: 只有輸入,沒有返回值
*/
public class Demo03 {
public static void main(String[] args) {
// Consumer<String> consumer = new Consumer<String>() {
// @Override
// public void accept(String str) {
// System.out.println(str);
// }
// };
//函數(shù)式接口
Consumer<String> consumer = (str)->{
System.out.println(str);
};
consumer.accept("ssssssssssssssss");
}
}
輸出結(jié)果:sssssssssssss
list.foreach 其實(shí)也是用的Consumer,自己寫的例子:
//有入?yún)]有返回值
list.forEach(x->{
System.out.println(x);
});
有入?yún)ⅲ瑳]有返回值!
Supplier 供給型接口

package com.function;
import java.util.function.Supplier;
/**
* Supplier 供給型接口,沒有參數(shù),只有返回值
*/
public class Demo04 {
public static void main(String[] args) {
// Supplier<String> supplier = new Supplier<String>() {
// @Override
// public String get() {
// System.out.println("Get");
// return "1024";
// }
// };
Supplier<String> supplier = () ->{
return "1024";
};
System.out.println(supplier.get());
}
}
輸出結(jié)果:1024
總結(jié)
函數(shù)型接口 :有入?yún)ⅲ址祷刂禂喽ㄐ徒涌? 有入?yún)?,返回布爾值消費(fèi)型接口: 有入?yún)?,沒有返回值供給型接口: 無(wú)入?yún)?,有返回?/p>
到此這篇關(guān)于Java常用函數(shù)式接口總結(jié)的文章就介紹到這了,更多相關(guān)Java函數(shù)式接口內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java基礎(chǔ)教程之對(duì)象的方法與數(shù)據(jù)成員
這篇文章主要介紹了Java基礎(chǔ)教程之對(duì)象的方法與數(shù)據(jù)成員,本文講解對(duì)象的方法與數(shù)據(jù)成員相關(guān)知識(shí),因?yàn)閖ava是面向?qū)ο笳Z(yǔ)言,本文的知識(shí)都是經(jīng)常要用到的,需要的朋友可以參考下2014-08-08
spring MVC中接口參數(shù)解析的過(guò)程詳解
這篇文章主要給大家介紹了關(guān)于spring MVC中接口參數(shù)解析的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用spring mvc具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-07-07
Java中操作Xml使用方法備忘錄(Hutool工具類XmlUtil、XStream)
這篇文章主要給大家介紹了關(guān)于Java中操作Xml使用方法(Hutool工具類XmlUtil、XStream)的相關(guān)資料,XMLUtil是一個(gè)工具類,主要用于讀取XML配置文件并提供相應(yīng)的操作方法,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-11-11
一次Spring項(xiàng)目打包問(wèn)題排查的實(shí)戰(zhàn)記錄
這篇文章主要給大家介紹了一次Spring項(xiàng)目打包問(wèn)題排查的實(shí)戰(zhàn)記錄,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者使用Spring具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08
Java中實(shí)現(xiàn)漢字生成拼音首拼和五筆碼
這篇文章主要介紹了Java中實(shí)現(xiàn)漢字生成拼音首拼和五筆碼方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03

