本文共 1245 字,大约阅读时间需要 4 分钟。
1、Lambda表达式是jdk1.8才有的新特性,在一些主流的语言中,该表达式都出现得比java早,比如javaScript语言是基于对象具有面向过程的特点。Java 为了不落伍,在2014年推出了该表达式的使用语法。编译器要改造,jvm执行引擎也要修改。
2、使用Lambda表达式的好处 在编程的时候,如果遇到要使用函数式接口(Lambda是函数式编程语言的主要特点),可以使用它,让代码的结构变得更加简洁,书写的代码量会减少。 3、函数式接口 一个接口中只能有一个抽象方法。在1.8中新出现了一个注解@FunctionInterface,它专门用来注解函数式接口,防止出现第二个抽象方法。 4、Lambda表达式的语法()->表达式()->{语句}
提示:(可以有参数声明)
5、使用Lambda表达式
/* new Thread( new Runnable() { @Override public void run() { System.out.println("线程执行"); } } ).start();*///Lambda实现//小括号表示调用函数式接口中唯一的方法,所以它不能有第二个方法,否则 编译器糊涂了 new Thread(()-> System.out.println("线程执行")).start();new Thread(()-> { System.out.println("线程执行"); System.out.println("再执行一次");}).start();
对数组排序
Person[] persons = { new Person("aa",20),new Person("bb",5),new Person("cc",9)}; //对数组排序/* Arrays.sort(persons, new Comparator() { @Override public int compare(Person o1, Person o2) { return o1.age - o2.age; } } );*/Arrays.sort(persons, (Person o1,Person o2)->{ return o1.age - o2.age;} ); for (Person p:persons ) { System.out.println(p); }
提示:以后的编程中,如果需要使用匿名内部类,而且内部类的接口是函数式接口,就应当使用Lamb
转载地址:http://hzzki.baihongyu.com/