
十三、函数式编程
是聪聪黄吖
道阻且长,行则将至!
展开
-
01 Lambda 表达式
根据方法参数个数的不同、方法体内语句数量的不同,Lambda 表达式的形式呈现多种多样。原创 2023-04-07 17:11:01 · 121 阅读 · 0 评论 -
03 函数式接口
使用注解将接口标注为函数式接口(当然,如果该接口仅有一个方法。那么,省略注解同样可以)。然后,将方法引用或Lambda表达式赋值给函数式接口(类型需要匹配),Java会自动适配赋值到目标接口。包旨在创建一组完整的目标接口,使得我们一般情况下不需再定义自己的接口。一旦将方法引用赋值给函数接口,我们就可以调用与该接口关联的函数方法。在此示例中为get()compare()accept()apply()和test()。原创 2023-04-12 15:00:22 · 208 阅读 · 0 评论 -
04 闭包
如果一个Lambda表达式使用了函数作用域之外的变量,会发生什么?分以下情形讨论:(1)变量定义在类中(共享变量存储空间)。(2)变量定义在方法中(局部变量)上述makeFun中的变量i,在每次调用方法时都会重新初始化。然而,makeFun方法中变量x和i都不能改变,即:被Lambda表达式引用的局部变量必须是final或者是等同final效果的,要不然会编译报错。即便变量i因为每次调用makeFun()时,其实都会创建并返回一个全新而非共享的ArrayList。也就是说,每个闭包都有自己独立的。原创 2023-04-12 16:21:18 · 561 阅读 · 0 评论