lambda表达式
1. 什么接口可以实现lambda表达式
如果一个接口中有且只有一个待实现的抽象方法,那么我们可以将匿名内部类简写为Lambda表达式
//只能有一个待实现的抽象方法 有且只有一个
interface Sstudy {
int sum(int a, int b); //待实现的求和方法
}
2. lambda表达式的定义
- 标准格式为:
([参数类型 参数名称,]...) ‐> { 代码语句,包括返回值 }
- 和匿名内部类不同,Lambda仅支持接口,不支持抽象类
- 接口内部必须有且仅有一个抽象方法(可以有多个方法,但是必须保证其他方法有默认实现,必须留一个抽象方法出来)
几种常见的lambda表达式
//lambda表达式
public class No03 {
@Test
public void test() {
Study study = new Study() {
@Override
public void study() {
System.out.println("study");
}
};
//lambda表达式 的简化 默认就一条语句 多条语句需要加{}
// 无返回值 无参数
Study study1 = ()-> System.out.println("study");//lambda表达式
// 无返回值 有参数
Study01 study01 = (a)-> System.out.println("study"+a);//lambda表达式
// 有返回值 有参数 如果就一个语句 return也可以省略
Study02 study02 = (a,b)-> a+b;//lambda表达式
}
}
interface Study {
void study();
}
interface Study01 {
void study(int a);
}
interface Study02 {
int study(int a,int b);
}