四大函数式接口(有函数型接口和断定型接口(都是函数式接口))

新时代程序员:lambda表达式,链式编程,函数式接口,Stream流式计算
比如Runnable接口)注意看上面的注解@FunctionalInterface(函数式接口)

比如foreach里面的参数Consumer也是个函数式接口

看清楚参数也是一个函数式接口

分析jdk的函数包去了解接口(函数式接口)

这个下面就有一堆的接口了。(四大函数式接口)

第一步:function(函数型接口(有一个输入,有一个输出)函数式接口都可以用lambda简化)。注意两个概念,我们这里函数式是函数式,函数型是函数型(型是我们自己想的)

测试:(根据源码,传入一个参数,返回一个参数)

Lambda表达式简化函数式接口:

断定型接口(也是一个函数式接口)(Predicate


Lambda表达式简化函数式接口


- package org.example.threadpoolexecutor;
-
-
-
- import java.util.function.Function;
-
-
-
- /**
- * 四大函数式接口(函数型接口(Function))有输入和返回值
- */
-
- public class TestFunction {
-
- public static void main(String[] args) {
-
- // Function
function=new Function() {//匿名内部类 -
- // @Override
-
- // public String apply(String str) {
-
- // return str;
-
- // }
-
- // };
-
- Function
function=(str)->{ -
- return str;
-
- };
-
- System.out.println(function.apply("ssss"));
-
-
-
-
-
- }
-
- }
-
-
-
-
-
- package org.example.threadpoolexecutor;
-
-
-
- import java.util.function.Predicate;
-
-
-
- /**
- * 四大函数式接口(短定型接口(Predicate))只有一个输入参数和返回值是布尔值
- */
-
- public class TestPredicate {
-
- public static void main(String[] args) {
-
- // Predicate
predicate= new Predicate() { -
- // @Override
-
- // public boolean test(String str) {
-
- // return str.isEmpty();
-
- // }
-
- // };
-
- Predicate
predicate=(str)->{ -
- return str.isEmpty();
-
- };
-
- System.out.println(predicate.test(""));
-
- }
-
- }