跟我一起java8(1)----Lambda初识

Lambda表达式是一个匿名函数,Java引入她是想鉴函数编程思想融合声明式编程特性.Lambda可谓是java8最激动人心的新特性之一了,先从实例看起:
    @Test
    public void testInnerClass() {
        //传统的写法
        Runnable run = new Runnable() {
            @Override
            public void run() {
                System.out.println("内部类");
            }
        };

        //无返回值且只有单一的表达式或声明时大括号可省略
        run = () -> System.out.print("Lambda1");

        //方法体内有多个表达式或声明,大括号不可省略
        run = () -> {
            int i = 0;
            System.out.print("Lambda2");
        };

        //有返回值,大括号不可省略
        Callable<Integer> call = () -> {
            return 0;
        };

        //参数类型没有显式写出,将从接口推断
        Comparator<Integer> comp = (i1, i2) -> {
            return i1.compareTo(i2);
        };

        //显式写出参数类型
        comp = (Integer i1, Integer i2) -> {
            return i1.compareTo(i2);
        };
    }


Lambda表达式的语法形式为: (formal parameter list) ->{ expression or statements },前面是参数列表,后面是方法体。参数的类型可以显式写出,如果没有写出,将从接口推断。后面的大括号在返回结果是void且只有单一的表达式或声明时可以省略。

你可能感兴趣的:(java8,lambda,跟我一起java8)