JAVA中的 lambda

本文探讨Java中的新特性,包括Lambda表达式的使用,函数式编程的概念及其优势,如参数类型自动推断、更易实现并行操作等。同时介绍了函数式接口的定义与识别,并通过具体示例解释了如何正确应用这些新特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值