Java基础

Java简介
Java 简介
Java 开发环境配置
Java 注释
我的第一个Java程序
Java基础语法
Java 基础语法
Java 基本数据类型
Java 变量类型
Java 权限修饰符与非权限修饰符
Java 运算符
Java 循环结构
Java 条件语句
Java switch case 语句
Java String类
Java 数组
Java 方法
Java面向对象
Java 对象和类
Java 继承
Java重写与重载
Java 多态
Java 抽象类
Java 封装
Java 接口
Java 包(package)
java this和super的使用
Java面向对象进阶
Java 泛型
Java容器
Java Enumeration接口
Java Bitset类
Java Vector 类
Java Stack 类
Java Dictionary 类
Java Hashtable 类
Java 数据结构
Java 集合框架
Java异常
Java 异常处理
Java IO
Java Properties 类
Java字节数组输出流类
Java数据输入流类
Java字节数组输出流
Java数据输入流类
Java File类
Java FileReader类
Java FileWriter类
Java 流(Stream)、文件(File)和IO
Java Scanner 类
Java并发
Java 多线程编程
Java高级技术
Java8 最新技术
Java 8 Lambda 表达式
Java 8 方法引用
Java 8 函数式接口
Java 8 默认方法
Java 8 Stream
Java 8 Optional 类
Java 8 Nashorn JavaScript
Java 8 日期时间 API
Java8 Base64
Java 8 新特性
Java9 最新技术
Java 9 新特性
Java 9 模块系统
Java 9 REPL (JShell)
Java 9 改进 Javadoc
Java 9 多版本兼容 jar 包
Java 9 集合工厂方法
Java 9 私有接口方法
Java 9 改进的进程 API
Java 9 改进的 Stream API
Java 9 改进的 try-with-resources
Java 9 改进的 @Deprecated 注解
Java 9 钻石操作符(Diamond Operator)
Java 9 改进的 Optional 类
Java 9 多分辨率图像 API
Java 9 改进的 CompletableFuture API
Java常用类
Java Number, Math 类
Java Character 类
Java StringBuffer 和 StringBuilder 类
Java 日期时间
Java 正则表达式
Java 序列化

Java 9 改进的 CompletableFuture API

Java 9 改进的 CompletableFuture API

Java 8 引入了 CompletableFuture<T> 类,可能是 java.util.concurrent.Future<T> 明确的完成版(设置了它的值和状态),也可能被用作java.util.concurrent.CompleteStage 。支持 future 完成时触发一些依赖的函数和动作。Java 9 引入了一些CompletableFuture 的改进:

Java 9 对 CompletableFuture 做了改进:

  • 支持 delays 和 timeouts
  • 提升了对子类化的支持
  • 新的工厂方法

支持 delays 和 timeouts

public CompletableFuture<T> completeOnTimeout(T value, long timeout, TimeUnit unit)

timeout(单位在 java.util.concurrent.Timeunits units 中,比如 MILLISECONDS )前以给定的 value 完成这个 CompletableFutrue。返回这个 CompletableFutrue。

public CompletableFuture<T> orTimeout(long timeout, TimeUnit unit)

如果没有在给定的 timeout 内完成,就以 java.util.concurrent.TimeoutException 完成这个 CompletableFutrue,并返回这个 CompletableFutrue。

增强了对子类化的支持

做了许多改进使得 CompletableFuture 可以被更简单的继承。比如,你也许想重写新的 public Executor defaultExecutor() 方法来代替默认的 executor

另一个新的使子类化更容易的方法是:

public <U> CompletableFuture<U> newIncompleteFuture()

新的工厂方法

Java 8引入了 <U> CompletableFuture<U> completedFuture(U value) 工厂方法来返回一个已经以给定 value 完成了的 CompletableFuture。Java 9以 一个新的 <U> CompletableFuture<U> failedFuture(Throwable ex) 来补充了这个方法,可以返回一个以给定异常完成的 CompletableFuture

除此以外,Java 9 引入了下面这对 stage-oriented 工厂方法,返回完成的或异常完成的 completion stages:

  • <U> CompletionStage<U> completedStage(U value): 返回一个新的以指定 value 完成的CompletionStage ,并且只支持 CompletionStage 里的接口。
  • <U> CompletionStage<U> failedStage(Throwable ex): 返回一个新的以指定异常完成的CompletionStage ,并且只支持 CompletionStage 里的接口。