lambda简单使用笔记

Lambda表达式

  • Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。
  • 使用 Lambda表达式可以使代码变的更加简洁紧凑。

Lambda重要特性

  1. 可选类型声明:不需要声明参数类型,编译器可以统一识别参数值。
  2. 可选的参数圆括号:一个参数无需定义圆括号,但多个参数需要定义圆括号。
  3. 可选的大括号:如果主体包含了一个语句,就不需要使用大括号。
  4. 可选的返回关键字:如果主体只有一个表达式返回值则编译器会自动返回值,大括号需要指定明表达式返回了一个数值。
  5. ==针对有且只有一个方法的接口,多个方法的接口不能用lambda==

下面是几个场景的Demo

需要被生成匿名内部类的父接口
//接口1 LambdaService
public interface LambdaService {
    public void say();
    //public void join(String s);
}
//接口2 LambdaService1
public interface LambdaService1 {
    public void join(String str);
}
//接口3 LambdaService3
public interface LambdaService3 {
    public String sayNm(Integer i);
}

场景

- lambda遍历foreach集合
List list = Arrays.asList("111", "222", "333", "444");
list.forEach(n -> System.out.println(n));
- lambda创建匿名内部类,内含无参函数
LambdaService lambdaService = () -> System.out.println("this lambdaservice say");
lambdaService.say();
- lambda创建匿名内部类,有参
LambdaService1 lambdaService1 = (s) -> System.out.println(s);
lambdaService1.join("this lambdaservice1 join");
- lambda创建匿名内部类,返回值,一行代码返回
LambdaService3 lambdaService3 = (s) -> "返回值为:" + s;
System.out.println(lambdaService3.sayNm(8));
- lambda创建匿名内部类,返回值,多行代码返回{return}
LambdaService3 lambdaService3 = (s) -> {
    String str = "返回值为:" + s;
    return str;
};
System.out.println(lambdaService3.sayNm(188));
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。