JAVA8新特性之Lambda表达式

Lambda表达式是JAVA8新特性之一,使我们的代码更加的简洁高效,它可以作为参数传递给方法,或存储在变量中,减少了匿名内部类繁琐的创建,它可以作为函数式接口的实例,为函数式接口的抽象方法提供实现,接下来就让我们详细的介绍Lambda表达式。

1.Lambda表达式用在哪里?

上面我们也说了,是作为函数式接口的实例,那什么是函数式接口呢?

只定义了一个抽象方法的接口,就是函数式接口。

2.Lambda表达式的结构

(parameters) -> expression

或
(parameters) -> {statements;}

  

3.下面用代码来说明

public class LambdaController {
    public static void main(String[] args) {
        TestInterface testInterface = str->System.out.println(str);
        testInterface.sayMessage("woshishui");

        TestInterface2 testInterface2 = (a,b)-> a+b;
        System.out.println(testInterface2.add(1,2));
    }

    interface TestInterface{
        void sayMessage(String message);
    }

    interface TestInterface2{
        int add(int a,int b);
    }

}

 

 

 

 4.上面的代码不足以说明,我们举点常用的

 

 

 Runnabel对象就是一个函数式接口,我们平常创建一个线程是怎么样的呢,先申明一个类实现Runnable对象,然后创建这个对象的实例 作为参数传到new Thread()中,还是像下面这样,使用匿名内部类

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

 还是像这样使用Lambda表达式

 

public class RunableTest {
    public static void main(String[] args) {
        new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println("");
            }
        }).start();
        //使用Lambda表达式
        new Thread(()-> System.out.println("")).start();
    }
}

 

posted @ 2021-04-02 14:25  vijayxu  阅读(83)  评论(0编辑  收藏  举报