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

代碼測試:

Function 函數(shù)式接口
package com.function;
import java.util.function.Function;
/**
* Function 函數(shù)型接口,有一個輸入?yún)?shù),有一個輸出
* 只要是函數(shù)型接口 可以 用lambda 表達(dá)式簡化
*/
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
斷定型接口:有一個輸入?yún)?shù),返回值只能是布爾值!

package com.function;
import java.util.function.Predicate;
/**
* 斷定型接口,有一個輸入?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 消費型接口

package com.function;
import java.util.function.Consumer;
/**
* Consumer 消費型接口: 只有輸入,沒有返回值
*/
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 其實也是用的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)?,返回布爾值消費型接口: 有入?yún)?,沒有返回值供給型接口: 無入?yún)?,有返回?/p>
到此這篇關(guān)于Java常用函數(shù)式接口總結(jié)的文章就介紹到這了,更多相關(guān)Java函數(shù)式接口內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java基礎(chǔ)教程之對象的方法與數(shù)據(jù)成員
這篇文章主要介紹了Java基礎(chǔ)教程之對象的方法與數(shù)據(jù)成員,本文講解對象的方法與數(shù)據(jù)成員相關(guān)知識,因為java是面向?qū)ο笳Z言,本文的知識都是經(jīng)常要用到的,需要的朋友可以參考下2014-08-08
Java中操作Xml使用方法備忘錄(Hutool工具類XmlUtil、XStream)
這篇文章主要給大家介紹了關(guān)于Java中操作Xml使用方法(Hutool工具類XmlUtil、XStream)的相關(guān)資料,XMLUtil是一個工具類,主要用于讀取XML配置文件并提供相應(yīng)的操作方法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-11-11

