最近查找资料学习时,发现例子中有好多地方用到了lambda表达式,所以今天学习记录一下。
推荐一个youtube的视频,讲解的非常不错。国内的伙伴有可能需要fan qiang才能看到。Good luck!!!
https://www.youtube.com/watch?v=gpIUfj3KaOc&list=PLqq-6Pq4lTTa9YGfyhyW2CqdtW9RtY-I3&index=1
Lambda表达式
它可以看做是函数型编程,那么java中函数定义就用接口来担当,所以,用到Lambda的时候需要使用一个接口。Lambda相关的语法规则也在下面代码中补充。
1 public class LamdbaDemo01 { 2 3 public static void main(String[] args) { 4 5 // new Thread( () -> System.out.println("--")).start(); 6 MyLambda greet = () -> System.out.println("Hello World!"); 7 greet.foo(); 8 // MyAdd myAdd = (int i, int j) -> i + j; 9 // 因为参数的变量名称一致,所以参数的变量类型可以省略 10 MyAdd myAdd = (i, j) -> i + j; 11 System.out.println(myAdd.add(2, 3)); 12 13 // 当参数只有一个的时候可以省略() , 此外当箭头右侧的代码只用一行的时候,可以省略{} 14 MyLength myLength = s -> s.length(); 15 System.out.println(myLength.leng("Hello world!")); 16 } 17 } 18 19 // 接口中只能有一个方法,这是使用Lambda表达式的要求 20 interface MyLambda { 21 void foo(); 22 } 23 24 interface MyAdd { 25 int add(int i, int b); 26 } 27 28 interface MyLength { 29 int leng(String s); 30 }