在Java 8中,方法mayInterruptIfRunning
的参数CompletableFuture#cancel(mayInterruptIfRunning)
无效,我认为这违反了java.util.concurrent.Future
中定义的合同。
在将代码从Future
迁移到CompletableFuture
而不注意此合同变更时,将引起问题。
似乎也违反了Liskov替代原则。
相关文章:https://www.nurkiewicz.com/2015/03/completablefuture-cant-be-interrupted.html