Java基础之lambda表达式

一、lambda:简化代码

  lambda: λ 组成:

    逗号隔开的参数列表(x,x,x);

    箭头符号  ->

    方法体 λ代码块

实例:

public class test_lambda {

    public static void test(){
        new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println("run....");
            }
        }).start();
    }
    public static void main(String[] args) {

        test();
    }
}

  简单的线程代码。

修改test()函数:

public static void test2(){
        new Thread(
                () ->System.out.println("run....")
            ).start();
    }

  

 运行成功。

注意:为了避免不能区分lambda到底是重写的哪个方法,语法上lambda要求重写的接口、抽象类中有且只能有一个抽象方法。

@FunctionalInterface注解,表明该接口中有且只有一个抽象方法。称之为函数式接口。

即使没有标注@FunctionalInterface,但是只有一个抽象方法,也称之为函数式接口。

特殊情况:如果某个接口中有多个抽象方法,但只有一个抽象方法是新定义的,其他抽象方法和Object中已有的抽象方法重复,那么该接口仍然是函数式接口。

 仍是函数式接口。

原文地址:https://www.cnblogs.com/jccjcc/p/14194842.html