1. 必须是函数式接口才可以使用Lambda表达式
      1. 中只有一个方法需要实现的接口 就可以称为函数式接口
      2. 接口上可以标记@FunctionalInterface注解的接口 都是函数式接口
    2. Lamdba表达式关键字 ->
    3. -> 左边: 接口方法中的形参 单个形参可以省略( )
    4. -> 右边: 接口中方法的具体实现或返回 如果实现中只有一个行实现或单个返回 可以省略return和{ } | 函数式接口 | 参数类型 | 返回类型 | 用途 | | —- | —- | —- | —- | | Consumer

    消费类型接口 | T | void | 对象类型为T的对象应用操作,包含方法void accept(T t) | | Supplier

    供给型接口 | 无 | T | 返回类型为T的对象,包含方法: T get() | | Function

    函数型接口 | T | R | 对象类型为T的对象应用操作,并返回结果.结果式R类型对象.包含方法:

    R apply(T t) | | Perdicate

    断定型接口 | T | boolean | 确定类型为T的对象是否满足约束,并返回boolean值.包含方法:

    boolean test(T t) |

    1. 示例 ```java /**

      • @author:LYY
      • @Date:2022/5/13
      • lambda表达式语法 */ public class LambdaTest {

        /**

        • lambda表达式 无返回值 无形参实例 */ @Test void test01() { // 正常写法 VoidInterface voidInterface1 = new VoidInterface() {

          1. @Override
          2. public void show() {
          3. System.out.println("我是正常接口匿名类");
          4. }

          }; voidInterface1.show();

          System.out.println(“*“); // lambda表达式写法 VoidInterface voidInterface2 = () -> System.out.println(“lambda表达式写法!”); voidInterface2.show(); }

        /**

        • lambda表达式 有返回值 有两个形参 */ @Test void test02() { // 正常写法 ReturnAndArgs returnAndArgs1 = new ReturnAndArgs(){

          1. @Override
          2. public String show(String name, int age) {
          3. return "姓名:" + name + "年龄:" + age;
          4. }

          }; String show1 = returnAndArgs1.show(“张三”, 66); System.out.println(show1); System.out.println(“**“); // lambda表达式 ReturnAndArgs returnAndArgs2 = (name, age) -> “姓名:” + name + “年龄:” + age; String show2 = returnAndArgs2.show(“李四”, 77); System.out.println(show2); }

    } /**

    • @author LYY */ interface VoidInterface {
    1. /**
    2. * 无返回值 无形参的方法
    3. */
    4. void show();

    }

    /**

    • @author LYY
    • 两个形参 和 存在返回值接口 */ interface ReturnAndArgs {

      /**

      • 返回姓名 年龄
      • @param name
      • @param age
      • @return */ String show(String name, int age);

    }

    ```