1. 表达式只有一行代码,参数只有一个
package com.dingha.lambda;
public class TestLambda2 {
public static void main(String[] args) {
Ilove love=null;
love=(int a) -> {
System.out.println("i love you-->"+a);
};
love=( a) -> {
System.out.println("i love you-->"+a);
};
love= a-> {
System.out.println("i love you-->"+a);
};
love = a-> System.out.println("i love you-->"+a);
love.love(521);
}
}
interface Ilove{
void love(int a);
}
2. 表达式有多行代码时不能简化花括号,需要用代码块包裹
love= a-> {
System.out.println("i love you-->"+a);
System.out.println("i love you-->too"+a);
};
3. 多个参数时,需要对参数加上括号
package com.dingha.lambda;
public class TestLambda2 {
public static void main(String[] args) {
Ilove love=null;
love=(int a,int b) -> {
System.out.println("i love you-->"+a);
};
love=( a,b) -> {
System.out.println("i love you-->"+a);
};
love= (a,b)-> {
System.out.println("i love you-->"+a);
System.out.println("i love you-->too"+a);
};
love = (a,b)-> System.out.println("i love you-->"+a+b);
love.love(521,530);
}
}
interface Ilove{
void love(int a,int b);
}
总结
- lambda表达式只有一行代码的情况下才能简化为一行,如果有多行,就用代码块包裹。
- 前提是接口为函数式接口
- 多个参数也可以去掉参数类型,要去掉都去掉,必须加上括号