首页 > 解决方案 > 为什么 CompletableFuture.complete() 在以错误类型完成时不抛出 ClassCastException

问题描述

此代码不打印任何内容,也不会引发任何错误:

    CompletableFuture<Integer> publicStage = new CompletableFuture<>();
    publicStage.thenAccept(i -> System.out.println("i = " + i));

    CompletableFuture<String> cfs = (CompletableFuture)publicStage;
    cfs.complete("foo");

这是因为 thenAccept 中的函数永远不会被调用,我预计会抛出某种错误,而不是仅仅删除函数并继续。

标签: java

解决方案


推荐阅读