JAVA中的 lambda

1 、 不再使用java util Date

  这是一个可变的对象。破坏了对象的不可变性。应该使用 LocalDate

2、函数式编程

自学

3、参数类型自动推断,代码简洁

4、更容易的并行

lambda表达式可以使用在任何有函数式接口的地方

只有一个抽象方法的接口是函数式接口

Public interface UserMapper{

Int insert();

}    √是函数式接口

 

Public interface UserMapper{

default Int insert();

}   默认方法 不是

 

Public interface UserMapper{

static Int insert();

} 静态方法不是

 

Public interface UserMapper{

Public Int hashCode();

}  Object对象中的方法也不是函数式接口

 

@FunctionInterface  这个注解帮助我们标注函数式接口

Java.util.function 包中几乎全部都是函数式接口

459061f5abdc2065747db89ca062a29b437.jpg

 

 

 

学习lambda 最重要的两点 1范型,  2函数式接口

 

lambda表达式是对象,是一个函数式接口的实例

a4339f96ff9f48cb2ac31251df7d9afb502.jpg

 

 

左边是参数 ,右边是体

 

57b12ec1a327efa23480c8f07a69608242a.jpg

65380d67682d63c726e22f7dcb1f6201cf5.jpg

 

 

其中第五个 ,没有返回值也可以那么写

参数是0个或者多个不能省略参数的小括号

de182690b78d137508aa1791d2eba542434.jpg

  1. 要么全部省略参数类型,要么都不省略
  2. lambda的参数不能使用 final修饰
  3. 不能把lambda赋给非函数式接口
  4. 如果非要把lamdba赋值给非函数式接口,需要把lambda强转成函数式接口
  5. 不需要也不允许使用throws语句来声明它可能会抛出的异常。

 

一看参数,二看返回值。

2.方法的引用

ad1d16718fdceb418deb448bd3baf0e1d1b.jpg

78203d2fe890f6c352aad2df70e43ad7b43.jpg

ec21526c1f1360a72a8e0d0208f6e2d3ad6.jpg

 

 

 

 

转载于:https://my.oschina.net/u/3018126/blog/3081092

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Lambda表达式是Java 8引入的一个新特性,它可以被视为一种匿名函数,它没有名称,但有参数列表、函数体和可能的返回类型。Lambda表达式是一种简便的语法形式,用于表示Java的函数式接口。 Lambda表达式的语法形式如下: ``` (parameters) -> expression ``` 或者 ``` (parameters) -> { statements; } ``` 其,parameters表示参数列表,可以为空或包含一个或多个参数;箭头->用于分隔参数列表和Lambda表达式的主体;expression或statements表示Lambda表达式的主体,可以是一个表达式或一组语句。 以下是一些Lambda表达式的示例: ``` // 无参数的Lambda表达式 () -> System.out.println("Hello, world!"); // 一个参数的Lambda表达式 (x) -> x * x // 多个参数的Lambda表达式 (x, y) -> x + y // 包含多条语句的Lambda表达式 (x, y) -> { int sum = x + y; System.out.println("The sum is " + sum); return sum; }; ``` Lambda表达式通常与Java的函数式接口一起使用,函数式接口是只有一个抽象方法的接口。例如,以下是一个函数式接口及其使用的示例: ``` @FunctionalInterface interface MyFunction { int apply(int x, int y); } MyFunction add = (x, y) -> x + y; MyFunction subtract = (x, y) -> x - y; int result1 = add.apply(2, 3); // result1 = 5 int result2 = subtract.apply(5, 2); // result2 = 3 ``` 在此示例,我们定义了一个带有一个抽象方法apply的函数式接口MyFunction,并使用Lambda表达式来实现该接口的单个方法。然后,我们创建了两个MyFunction实例来执行加法和减法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值