Java8新特性

一、Java8新特新

1、Lambda 表达式

Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。

使用 Lambda 表达式可以使代码变的更加简洁紧凑。

  • 语法
(parameters) -> expression
或
(parameters) ->{ statements; }
  • eq
public class Test04 {
    static int aa=10;
    public static void main(String[] args) {
        // 使用lambda表达式
        // 不用类型声明
        MathOperation sum=(a,b)->a+b;
        System.out.println("lambda表达式:"+sum.sum(10,25));
        // 带返回值的
        sum=(a,b)->{return a+b;};
        System.out.println("lambda表达式带返回值:"+sum.sum(23,34));
        // 带参数类型
        sum=(int a,int b)-> a*b;
        System.out.println("lambda参数带类型:"+sum.sum(56,45));
        // 无返回值
        int bb=10;
        final int cc=20;
        MathOperation2 sum2=(a,b)->{
            System.out.println("lambda无返回值:"+a+b+"="+(a+b));
            // Variable used in lambda expression should be final or effectively final
            //bb=34;局部变量可以不用声明为 final,但是必须不可被后面的代码修改(即隐性的具有 final 的语义)
            a=cc;//可以使用final修饰的局部变量
            a=bb;//可以使用普通的局部变量,但不能修改
        };
    }
}
interface MathOperation{
    int sum(int a,int b);
}
interface MathOperation2{
    void sum(int a,int b);
}
posted @ 2021-08-05 23:49  黎白昼  阅读(36)  评论(0)    收藏  举报