1.1 目标


掌握Lambda的前提条件

Lambda的语法非常简洁,但是Lambda表达式不是随便使用的,使用时有几个条件要特别注意:

1. 方法的参数或局部变量类型必须为接口才能使用Lambda
2. 接口中有且仅有一个抽象方法

  1. package com.itheima.demo01lambda;
  2. import java.util.Collections;
  3. public class Demo06LambdaCondition {
  4. public static void main(String[] args) {
  5. // 方法的参数或局部变量类型必须为接口才能使用Lambda
  6. test(() -> {
  7. });
  8. Runnable r = new Runnable() {
  9. @Override
  10. public void run() {
  11. System.out.println("aa");
  12. }
  13. };
  14. Flyable f = () -> {
  15. System.out.println("我会飞啦");
  16. };
  17. }
  18. public static void test(Flyable a) {
  19. new Person() {
  20. };
  21. }
  22. }
  23. // 只有一个抽象方法的接口称为函数式接口,我们就能使用Lambda
  24. @FunctionalInterface // 检测这个接口是不是只有一个抽象方法
  25. interface Flyable {
  26. // 接口中有且仅有一个抽象方法
  27. public abstract void eat();
  28. // public abstract void eat2();
  29. }

1.2 小结


Lambda表达式的前提条件:

1. 方法的参数或变量的类型是接口
2. 这个接口中只能有一个抽象方法