java8-四大函式式介面
阿新 • • 發佈:2021-07-15
函式式介面: 有且只有一個方法的介面
@FunctionalInterface
public interface Runnable {
public abstract void run();
}
簡化編成模型 在新版本的框架底層大量應用
/* * Function 函式型介面 有一個輸入引數 有一個輸出引數 * 只要是函式式介面 都可以用lambda表示式簡化 * * */ public class Demo01 { public static void main(String[] args) { Function function = new Function<String, String>() { @Override public String apply(String str) { return str+" ok"; } }; System.out.println(function.apply("it's")); Function<Integer,String> function2 =(str)-> {return str+ 666 +" ---NB";}; System.out.println(function2.apply(6000)); } }
斷定型介面
/* * Predicate 斷定型介面 有一個輸入引數 返回是布林值 * 只要是函式式介面 都可以用lambda表示式簡化 * * */ public class Demo02 { public static void main(String[] args) { Predicate<String> predicate = new Predicate<String>() { @Override public boolean test(String str) { return str.isEmpty(); } }; // System.out.println(predicate.test("it's")); // System.out.println(predicate.test("")); Predicate<String> predicate2 = (str)->{ return str.isEmpty();}; System.out.println(predicate2.test("it's")); System.out.println(predicate2.test("")); } }
消費型介面
/* * 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("66666666"); // System.out.println(str); // // } // }; Consumer<String> consumer = (str) -> { System.out.println(str); }; consumer.accept("777777"); } }
供給型介面
/*
* Supplier 供給型介面 沒有引數 只有返回值
* */
public class Demo04 {
public static void main(String[] args) {
// Supplier<String> supplier = new Supplier<String>() {
//
// @Override
// public String get() {
// return "6666";
// }
// };
Supplier<String> supplier = () -> {
return "6666";
};
System.out.println(supplier.get());
}
}