此代码不会打印任何内容,也不会抛出任何错误:
CompletableFuture<Integer> publicStage = new CompletableFuture<>();
publicStage.thenAccept(i -> System.out.println("i = " + i));
CompletableFuture<String> cfs = (CompletableFuture)publicStage;
cfs.complete("foo");
这是因为thenAccept中的函数永远不会被调用,我会预料会抛出某种错误,而不是仅仅丢弃函数并继续。