WebFlux响应式编程基础之 2 函数式编程 工具jclasslib bytecode viewer
函数式编程:告诉他的功能是什么,而不是告诉他怎么做
命令式编程:怎么去做
函数式编程:不需要关注细节,利用系统已经有的API
使用jdk8自带函数接口的好处
函数接口减少接口定义
函数式接口链式操作
方法引用
// 方法引用Consumer<String> consumer = s -> System.out.println(s);Consumer<String> consumer2 = System.out::println;consumer.accept("fffffffffffffffff");consumer2.accept("fffffffffffffffff");
JDK默认会把当前实例传入到非静态方法中,参数名为this,位置是第一个
类型推断
变量引用
lambda表达式 – 匿名内部类 final
注意:参数传的是值,会有二义性,所以用final;是一个“坑”
级联表达式和科里化
import java.util.function.Function;/*** 级联表达式和柯里化* 柯里化:把多个参数的函数转换为只有一个参数的函数* 柯里化的目的:函数标准化* 高阶函数:就是返回函数的函数*/
public class CurryDemo {public static void main(String[] args) {// 实现了x+y的级联表达式Function<Integer, Function<Integer, Integer>> fun = x -> y -> x+ y;System.out.println(fun.apply(2).apply(3));Function<Integer, Function<Integer, Function<Integer, Integer>>> fun2 = x -> y -> z -> x+ y + z;System.out.println(fun2.apply(2).apply(3).apply(4));int[] nums = { 2, 3, 4 };Function f = fun2;for (int i = 0; i < nums.length; i++) {if (f instanceof Function) {Object obj = f.apply(nums[i]);if (obj instanceof Function) {f = (Function) obj;} else {System.out.println("调用结束:结果为" + obj);}}}}
}
柯里化:把多个参数的函数转换为只有一个参数的函数
柯里化的目的:函数标准化
java值引用
WebFlux响应式编程基础之 2 函数式编程 工具jclasslib bytecode viewer相关推荐
- spark编程基础--2.4函数式编程基础
foreach遍历操作 映射操作map,flatmap 过滤操作filter 规约操作 reduce,fold方法 拆分操作partition,groupedBy,grouped,sliding Sc ...
- Spring:Webflux响应式编程
目录 简介 响应式编程 Reactor 信号 操作符 SpringWebflux 执行流程和API 注解实现SpringWebflux 说明:基于atguigu学习笔记. 简介 Webflux是 Sp ...
- springboot 使用webflux响应式开发教程(一)
什么是webFlux 左侧是传统的基于Servlet的Spring Web MVC框架,右侧是5.0版本新引入的基于Reactive Streams的Spring WebFlux框架,从上到下依次是R ...
- springboot 使用webflux响应式开发教程(二)
本篇是对springboot 使用webflux响应式开发教程(一)的进一步学习. 分三个部分: 数据库操作 webservice websocket 创建项目,artifactId = tradin ...
- 【Java】基础36:函数式编程
现在直播一直都很火,今天我们就用Java代码简单地模拟一个直播案例,以此来一步步说明什么叫函数式编程. 不要看这个名字好像挺难懂的样子,其实很简单,两分钟时间即可看完. 一.直播间案例 现在有一个直播 ...
- SIGIA_4P python学习 列表 字典 集合 面对对象编程 闭包 装饰器 函数式编程 作用域 异常处理
SIGIA_4P python学习 列表 字典 集合 面对对象编程 闭包 装饰器 函数式编程 作用域 异常处理 本文连接 简介 SIGIA_4P 网址 a. 课程OKR Objectives and ...
- 高阶函数||编程范式: 命令式编程/声明式编程 || 编程范式: 面向对象编程(第一公民:对象)/函数式编程(第一公民:函数)
编程范式: 命令式编程/声明式编程 编程范式: 面向对象编程(第一公民:对象)/函数式编程(第一公民:函数) 高阶函数 filter/map/reduce filter中的回调函数有一个要求: 必须返 ...
- WebFlux响应式编程基础之 4 reactive stream 响应式流
reactive stream 响应式流 - 简而言之,就是多了一个沟通的渠道 发布订阅者 背压 交流 Reactive Stream主要接口 java.util.concurrent.Flow 源码 ...
- Spring WebFlux 响应式编程学习笔记(一)
各位Javaer们,大家都在用SpringMVC吧?当我们不亦乐乎的用着SpringMVC框架的时候,Spring5.x又悄(da)无(zhang)声(qi)息(gu)的推出了Spring WebFl ...
最新文章
- SQL 查询总是先执行SELECT语句吗?你们都错了!
- 基于PyTorch的GAN框架TorchGAN:用架构级API轻松定制GAN项目
- 【转摘】如何得心应手的玩转Excel
- 软件项目开发过程中主要遇到的核心问题小结
- Java IO: 字符流的Piped和CharArray
- Java:月份的中英文转换
- GotoAndPlay 图论
- 直指Adobe的龌龊行径
- IE9 表格错位bug
- [linux]centos7.4上升级python2版本到python3.6.5 【安装双版本,默认python3】
- 人肉搜索将被禁止,大家要保护好自己的个人信息!
- Git查询一定时间范围团队代码提交日志
- 微信小程序根据用户当前位置并打开地图选择周边地址,完成外卖地址选择并计算距离
- eovs实训报告总结心得_实训报告心得体会范文大全
- 爬虫入门到放弃系列07:js混淆、eval加密、字体加密三大反爬技术
- Linux数据库管理与应用
- 2D横版游戏角色素材可商用
- 网页源文件星号怎么显示_【亲测实用】网页隐藏密码查看方法
- 虚荣登陆显示无法连接服务器,虚荣服务器连接不上怎么办?连接服务器解决办法...
- ubuntu 22.04 通过xmodmap修改键盘映射
热门文章
- Mybatis一级缓存、整合第三方缓存ehcache、Mybatis二级缓存
- Storm对DRPC权限控制Version1.0.1
- linux top 上次更新到现在的cpu时间占用百分比,使用top命令分析linux系统性能的详解...
- echarts map 点击地图区域变色_pyecharts 地图可视化
- 跨路由器 网段访问rtsp_实验演示:三层交换机与路由器对接
- python 打开excel并在屏幕上呈现_excel-检查文件是否在Python中打开
- JavaScript原型与原型链
- 项目中记录影响性能的缓慢数据库查询
- 《javascript高级程序设计》读书笔记1
- zt:tcpdump抓包对性能的影响