• 技术文章 >java >java基础

    CompletableFuture在java中的报错处理

    小妮浅浅小妮浅浅2021-01-19 10:10:30原创5028

    我们对于CompletableFuture的理解,可以先从它的基础类Future讲起,作为一个用来计算异步中的工具存在的。CompletableFuture相对而言,在功能上进一步的升级,对于线程的调用效率上更高。本篇我们CompletableFuture就在异步处理中遇到的报错问题进行分析,提出解决的方法。

    1.问题分析

    想实现的效果:future的集合如果在3秒内没有返回就执行提取出其中已经完成的future。

    编译报错,"Cannot infer functional interface type."

    2.解决办法

    (1)可以这个报错标红的地方,在applyToEither方法的第二个参数上,那查看一哈applyToEither方法的参数格式

    public <U> CompletableFuture<U> applyToEither(
    CompletionStage<? extends T> other, Function<? super T, U> fn) {
    return orApplyStage(null, other, fn);
    }

    2)第二个参数是一个Function,Function要求的是根据一个参数返回一个结果,而这里写的很明显,是没有参数的,写成了一个Supplier,当然参数类型是不符合方法applyToEither的要求。

    以上就是CompletableFuture在java中的报错处理,可以看出在使用时,忽略了参数的添加,而且参数类型不规范导致程序处理时出现错误,这里大家在使用时需要牢记。

    专题推荐:java completablefuture
    品易云
    上一篇:java中int使用十六进制 下一篇:java之json串转Map的整理

    相关文章推荐

    • java构造器的重载实现• 构造器与java方法的比较分析• Java中char字节的占用分析• java中int使用十六进制

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网