Java笔记

1. Lambda表达式使用的前提条件

  • 方法的参数或局部变量类型必须为接口!!!,才能使用Lambda

    eg:局部变量类型:(Runnable是一个接口)
    匿名内部类方式:

Runnable r = new Runnable(){
  @override
  public void run(){
    System.out.println("xxx");
  }
}

这种情况,你要来个局部变量,可以使用 Lambda表达式

Runnable r = ()-> System.out.println("xxx");
  • 接口中有且仅有一个抽象方法
JDK8中,只有一个抽象方法的接口称为函数式接口,我们就能使用 Lambda。
针对一个接口中,是否有大于一个抽象方法?JDK8为我们新增了一个注解:@FunctionalInterface。它能够帮助我们检测这个接口是不是只有一个抽象方法,如果有两个抽象方法,则会报错。

2. PECS(Producer Extends Consumer Super)原则

频繁往外读取内容的,适合用上界Extends

经常往里插入的,适合用下界Super

上一篇:普歌 - lambda表达式详解


下一篇:C++11 lambda表达式