thenApply()和thenCompose()的区别

2023-05-16

thenApply()和thenCompose()的区别:

thenapply()是返回的是非CompletableFuture类型:
它的功能相当于将CompletableFuture<T>转换成CompletableFuture<U>。

thenCompose()用来连接两个CompletableFuture,返回值是新的CompletableFuture:

总结:thenApply()转换的是泛型中的类型,是同一个CompletableFuture;
thenCompose()用来连接两个CompletableFuture,是生成一个新的CompletableFuture。


例子:
1.thenApply():

CompletableFuture<Integer> future = CompletableFuture.supplyAsync(() -> {

      return 100;

});

CompletableFuture<String> f = future.thenApplyAsync(i -> i * 10).thenApply(i -> i.toString());

System.out.println(f.get()); //"1000"

thenApply()源码:

public <U> CompletableFuture<U> thenApply(
Function<? super T,? extends U> fn) {
return uniApplyStage(null, fn);
}

解读:
参数: Function<? super T,? extends U> fn)
输入前面的CompletableFuture<T>中的T的值,返回一个继承U的类型的值,将这个值返回

顺序:先确定返回值U或其子类,再确定方法中 public <U> CompletableFuture<U> thenApply()中的 <U>类型

 

2.thenCompose():

CompletableFuture<Integer> future = CompletableFuture.supplyAsync(() -> {

return 100;

});

CompletableFuture<String> f = future.thenCompose( i -> {

return CompletableFuture.supplyAsync(() -> {

return (i * 10) + "";

});

});

System.out.println(f.get()); //1000

转载于:https://www.cnblogs.com/tian666/p/7885566.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

thenApply()和thenCompose()的区别 的相关文章

  • PX4 IO [14] serial [转载]

    PX4 IO 14 serial PX4 IO 14 serial 转载请注明出处 更多笔记请访问我的博客 xff1a merafour blog 163 com 2014
  • 《Windows核心编程》第3章——深入理解handle

    本文借助windbg来理解程序中的函数如何使用handle对句柄表进行查询的 所以先要开启Win7下Windbg的内和调试功能 解决win7下内核调试的问题 win7下debug默认无法进行内核调试 xff08 xff01 process等
  • CentOS7中firewalld的安装与使用详解

    一 软件环境 root 64 Geeklp201 cat etc redhat release CentOS Linux release 7 4 1708 Core 二 安装firewalld 1 firewalld提供了支持网络 防火墙区
  • IMU数据融合:互补,卡尔曼和Mahony滤波

    编写者 xff1a 龙诗科 邮箱 xff1a longshike2010 64 163 com 2016 06 29 本篇博客主要是参照国外的一篇文章来整理写的 xff0c 自己觉得写的非常好 xff0c 以此整理作为以后的学习和参考 国外
  • ogeek线下赛web分析1-python-web

    1 python from flask import Flask request render template send from directory make response from Archives import Archives
  • java学习杂记-更新

    1 maven添加下载依赖jar文件 xff1a maven官方仓库 xff0c 需要哪个jar文件直接找到对应的依赖标签 https search maven org 直接将 lt dependency gt 放到pom xml文件中 x
  • javascript/Jquery 将字符串转换成变量名

    var a 61 39 a 39 39 b 39 39 c 39 var obj 61 for i 61 0 i lt a length i 43 43 obj a i 61 34 abc 34 43 1 alert obj a alert
  • Navicat 看历史执行SQL

    Navicat可以通过这个框口看手动操作所执行的代码操作 转载于 https www cnblogs com sunxun p 5286657 html
  • MWC四轴飞行器代码解读

    MWC v2 2 代码解读annexCode 红色是一些暂时没去顾及的部分 xff0c 与我现在关心的地方并无太大关系 函数对rcDate进行处理 xff08 去除死区 xff0c 根据油门曲线 xff0c roll pitch曲线 xff
  • 云讷科技推出Kerloud数传电台

    介绍 Kerloud Telemetry是由云讷科技推出的一款面向无人系统 传输可靠的短距离无线传输电台 产品基于ISM Sub G频段 xff0c 采用FSK调制 抗干扰能力强 xff0c 具备Uart USB通用接口 xff0c 支持P
  • Requests方法 --- post 请求body的四种类型

    常见的 post 提交数据类型有四种 xff1a 1 第一种 xff1a application json xff1a 这是最常见的 json 格式 xff0c 也是非常友好的深受小伙伴喜欢 的一种 xff0c 如下 34 input1 3
  • 中文转拼音 (utf8版,gbk转utf8也可用)

    中文转拼音 utf8版 gbk转utf8也可用 https git oschina net cik pinyin php 64 param string str utf8字符串 64 param string ret format 返回格式
  • Pycharm激活方法(license server方法)

    strong pycharm所有版本 span class hljs string http span class hljs comment www jetbrains com pycharm download previous html
  • idc函数大全

    A80 addc A80 addcix A80 addciy A80 addix A80 addiy A80 cmpd A80 cmpi A80 im0 A80 im1 A80 im2 A80 jrc A80 jrnc A80 jrnz A
  • 视觉SLAM漫淡

    视觉SLAM漫谈 1 前言 开始做SLAM xff08 机器人同时定位与建图 xff09 研究已经近一年了 从一年级开始对这个方向产生兴趣 xff0c 到现在为止 xff0c 也算是对这个领域有了大致的了解 然而越了解 xff0c 越觉得这
  • 无人机基础知识点总结

    一 xff0e 基本概念 飞控 xff1a 飞机的控制系统 xff0c 其中硬件包含传感器部分IMU和控制部分的MCU xff0c 软件部分包含控制算法 俯仰 xff1a pitch xff0c 绕坐标系y轴旋转 xff0c 想象一下平时的
  • 谈一谈编程中遇到的一些死循环(递归死循环,AOP死循环,业务死循环)

    最简单最基础死循环 xff0c 一般都是这样的 while 1 while true for 然而在编程中常常会用到一些并不是那么基础的死循环 xff0c 这里列举一些我在编程中所遇到的一些死循环 方法已经不记得了 xff0c 只是大概说明
  • 简历上的项目经历怎么写?这3条原则不可忽视!

    阅读本文大概需要 5 分钟 作者 xff1a 黄小斜 文章来源 xff1a 微信公众号 程序员江湖 作为一个程序员 xff0c 想必大家曾经都做过一些项目 xff0c 可能现在手头上也还有一些项目 不过还是有很多学生朋友来问我 没有项目怎么
  • “四通一达”本一家,这家人是如何“承包”中国快递半壁江山的?

    微博上有张图火到不行了 看明白没 xff1f 原来 xff0c 这些年为我们奔走送快递的申通 中通 圆通 韵达 xff0c 这四家公司 xff0c 以及汇通 天天等快递公司 xff0c 都有一个共同的老家 xff1a 仅有40万人口的浙江桐

随机推荐

  • 在远方

    远方不是脚到达的地方 xff0c 而是心超越的地方 剧情简介 姚远在孤儿院长大 xff0c 后被二叔接出 xff0c 早早进入社会 xff0c 从底层快递员做起 在被邮政执法堵截损失惨重后 xff0c 他设局结识国营邮政稽查负责人的千金路晓
  • c++11 条款21:尽量使用std::make_unique和std::make_shared而不直接使用new

    条款21 xff1a 尽量使用std make unique和std make shared而不直接使用new 让我们从对齐std make unique 和 std make shared这两块开始 std make shared是c 4
  • 快递 10 年,逆袭为王

    2009 2018 xff0c 双十一 全民狂欢已走过十载 xff0c 网购成为了国民消费不可或缺的重要组成 xff0c 并带动了上下游众多产业的狂飙发展 xff0c 这其中 xff0c 以民营快递最为突出 金风玉露一相逢 xff0c 便胜
  • BPDU报文(RSTP)

    与STP 的BPDU报文格式相同 xff0c 就是在flags字段报文中间几位得到应用 主要原理 xff1a 利用flages位中的Proposal与Agreement来进行协商 xff0c 从而快速从 discarding 转成 forw
  • 怎么在一堆身份证中筛选出大于18岁的?

    最近一朋友找我帮个忙 xff0c 让我在N多身份证中找到18岁以上的人 我还想着用SQL查询来弄 xff0c 谁让是干IT的呢 xff0c 没想到被我一个朋友用excel瞬间解决 学习新的东西是多么的重要啊 其实就是利用了excel中的MI
  • 微信小程序我的界面

    前言 感谢 承蒙关照 微信小程序我的界面 界面效果 界面结构 小程序代码 我们先看me json代码 34 navigationBarTitleText 34 34 个人中心 34 me wxml代码 lt view class 61 34
  • __sync_fetch_and_add

    最近在公司离职的前辈写的代码哪里看到了 sync fetch and add这个东东 比较好奇 找些资料学习学习 http www lxway com 4091061956 htm http www cnblogs com FrankTan
  • 2.5年, 从0到阿里

    从来没有想到自己的求职之路会这么顺利 第一次投阿里就拿到了offer 以前一直都是做好被刷的准备的 3月31号晚上收到了来自阿里的正式offer 签下录取意向书 粗略算了一下 从2012年9月份正式入学进入计算机系到2015年3月签下阿里o
  • Cmake知识整理

    目录 CMake官方文档 CMake特点CMake命令find package二进制目标构建选项CMake文本内置命令CMake工程内置命令CMake toolchainsCMake变量 信息描述部分CMake变量 动作行为部分CMake变
  • closstol-ng制作交叉编译器

    crosstool ng制作交叉编译器 本文档基于凌云物网智科实验室文档制作 1 xff0c gt gt mkdir crosstool gt gt cd crosstool gt gt wget http crosstoolng org
  • How to resolve `unmet dependencies, Depends: nodejs but it is not going to be installed` npm

    为了安装Node Red xff0c 将ubuntu 18 04 的node js v8 升到 node js v10 Supported Node versions https nodered org docs faq node vers
  • Android开源项目及库搜集

    TimLiu Android 自己总结的Android开源项目及库 github排名 https github com trending github搜索 xff1a https github com search 目录 UI 卫星菜单节选
  • 深入Linux内核架构——简介与概述

    一 内核的任务 纯技术层面上 xff0c 内核是硬件与软件的之间的一个中间层 作用是将应用程序的请求传递给硬件 xff0c 并充当底层驱动程序 xff0c 对系统中的各种设备和组件进行寻址 从应用程序视角上看 xff0c 内核可以被认为是一
  • Flask快速入门(4) — CBV写法与解析

    目录 方式一 xff1a 继承View as view 源码分析方式二 xff1a 继承MethodView 方式一 xff1a 继承View code from flask import Flask views app 61 Flask
  • Flask快速入门(6) — 常见的请求与响应参数

    Flask快速入门 6 常见的请求与响应参数 code from flask import Flask from flask import request from flask import render template from fla
  • Flask快速入门(5) — 模板渲染

    Flask快速入门 5 模板渲染 视图函数 code from flask import Flask request render template Markup app 61 Flask name 64 app route 39 39 e
  • [转帖]windows10,business版和consumer版本区别

    windows10 business版和consumer版本区别 时间 2018 07 08 10 50 来源 原创 作者 5分享 点击 7113 次 windows10系统 xff08 1803 xff09 business editio
  • \0 的ASCII码值是多少

    0 的ASCII码值是多少 include lt iostream gt using namespace std void main char c 61 39 0 39 cout lt lt int c lt lt endl 输出是0 xf
  • python练习:编写一个程序,要求用户输入10个整数,然后输出其中最大的奇数,如果用户没有输入奇数,则输出一个消息进行说明。...

    python练习 xff1a 编写一个程序 xff0c 要求用户输入10个整数 xff0c 然后输出其中最大的奇数 xff0c 如果用户没有输入奇数 xff0c 则输出一个消息进行说明 重难点 xff1a 通过input函数输入的行消息为字
  • thenApply()和thenCompose()的区别

    thenApply 和thenCompose xff08 xff09 的区别 xff1a thenapply xff08 xff09 是返回的是非CompletableFuture类型 xff1a 它的功能相当于将CompletableFu