java中lambda介绍

lambda

lambda表达式的标准格式
由三部分组成

  • 1.一些参数
  • 2.一个箭头
  • 3.一段代码

格式
(参数列表->{一些重写的方法代码};
解释说明格式
():接口中的抽象方法的参数列表,没有参数,就空着;有参数就写出参数,多个参数使用逗号分隔
->:传递的意思,把参数传递给方法体{}
{}:;重写接口的抽象方法的方法体
注意点:

  • 使用Lambda必须具有接口,且要求接口中有且仅有一个抽象方法
  • 无论jdk内置的runnable、comparator接口还是自定义的接口,只有当接口的抽象方法存在且唯一时,才可以用lambda,
  • 2.是由lambda必须具有上下文推断。
    也就是方法中的参数或局部变量类型必须是为lambda对应的接口类型,才能使用lambda作为该接口的实列
    (上下文可以推导出来的内容,就可以省略)lambda可以省略的内容:
    (参数列表:)括号中的参数列表类型,可以省略不写
    (参数列表):括号中的参数如果只有一个,那么类型和()都可以省略
    (一些代码)如果只有一行,无论是否有放回值,都可以省略({},return,;)注意点,省略一起省略

代码介绍(以线程的创建为例)

public class Demo02lambda {
public static void main(String[] args) {
    new Thread(new Runnable() {
        @Override
        public void run() {
            System.out.println(Thread.currentThread().getName() + "创建新线程");
        }
    }).start();
    //使用lambda
    new Thread(()-> {
            System.out.println(Thread.currentThread().getName() + "创建1新线程");
        }
   ).start();
    //优化lambda
    //没有参数()不可以省略,只有一行代码,{},;,return可以省
    new Thread(()->System.out.println(Thread.currentThread().getName() + "创建1新线程")
    ).start();
}
}

猜你喜欢

转载自blog.csdn.net/tangshuai96/article/details/102787601
今日推荐