Java核心基础之lambda
Java8带来了很多新特性,如函数式编程、接口默认实现,这边主要介绍lambda函数式编程,让代码更简洁高效!
前言
Lambda俗称函数式编程,也称为闭包,是将函数作为方法参数传入,快速实现接口!将代码更紧凑,接下来让我们来看看
接口匿名类实现与闭包的对比!
我们先看看两种代码的对比
接口匿名类与闭包实现的代码演示
public class TestLambda {
interface iTest{
public int add(int i1, int i2);
}
@Test
void test1() {
//接口的匿名类实现
iTest i1 = new iTest() {
@Override
public int add(int i1, int i2) {
return i1+i2;
}
};
Assertions.assertEquals(i1.add(5, 6),11,"测试不成功!");
}
@Test
void test2() {
//接口的闭包实现
iTest i1 = (a,b)-> a+b;
Assertions.assertEquals(i1.add(5, 6),11,"测试不成功!");
}
}
小结:闭包的实现确实简化了很多,也不太容易理解,主要有这么几点
- 可选的类型声明,变量的类型定义可选,也就是没有啦,让编译器自动识别并转换。
- 可选的参数圆括号,多个参数还是需要的!
- 可选的大括号,多个语句还是需要的!
- 可选的return,多个语句,也就是有花括号时是需要return的!
更多的示例
// 1. 不需要参数,返回值为 5
() -> 5
// 2. 接收一个参数(数字类型),返回其2倍的值
x -> 2 * x
// 3. 接受2个参数(数字),并返回他们的差值
(x, y) -> x – y
// 4. 接收2个int型整数,返回他们的和
(int x, int y) -> x + y
// 5. 接受一个 string 对象,并在控制台打印,不返回任何值(看起来像是返回void)
(String s) -> System.out.print(s)
评论系统未开启,无法评论!