jdk1.8新特性Lambda表达式

lambda表达式其实就是指一个匿名函数,它支持Java也能进行简单的“函数式编程”,是一个匿名函数,即没有函数名的函数。

而能够使用lambda表达式的一个前提要求是,该变量必须实现某个函数式接口。

基本语法:
(parameters) -> expression 或 (parameters) ->{ statements; }

即: 参数 -> 带返回值的表达式/无返回值的陈述

例子:

传统写法:

public static void runSomeThing(){
        Runnable runnable =new Runnable() {
            @Override
            public void run() {
                System.out.println("old run!");
            }
        };
        new Thread(runnable).start();
    }

lambda表达式:

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

上述代码中:() ->System.out.println("new run!")就是lambda表达式

可以看出,它代替了new Runnable(){}这个匿名内部类。

还有集合中:

        List<String> list =
                Arrays.asList("y","name","is","ber","and","uc");
        for (int i = 0; i < list.size(); i++) {
            System.out.print(list.get(i));
        }
        System.out.println();
        list.forEach(str->System.out.print(str));

好处

显而易见的,好处就是代码量大大减少,程序逻辑清晰明了。

其缺点就是可读性较差,不容易理解。
 

猜你喜欢

转载自blog.csdn.net/sunayn/article/details/81363478