java - 从库返回 Java Future 的最佳实践

标签 java future

我正在开发一个实现跳跃点搜索算法的 Java 库。您可以调用两个公开的方法来运行搜索。一个同步的,一个返回结果的 Java Future

public Future<Queue<T>> findPath(T start, T goal) {
    FutureTask<Queue<T>> future = new FutureTask<>(() -> findPathSync(start, goal));
    future.run();
    return future;
}

我想知道的是,在这种情况下,最佳做法是什么。库应该实际运行 FutureTask 并返回 Future,还是应该返回 FutureTask 并且最终用户必须知道任务还没有真正被执行?

谢谢!

最佳答案

我不能真正代表“最佳实践”,但作为用户,如果我调用一个方法,我的默认假设是它触发了某些东西——它启动了执行——通常保留“仅构造”范式用于构建器模式或工厂。

所以上面的代码是我所期望的行为,我觉得我最常看到的,即使不是总是,即使在其他系统(即 Node.js)中也是如此

关于java - 从库返回 Java Future 的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30687847/

相关文章:

java - 用于循环遍历数组以打印一条语句java

Scala 我可以创建多少个 future

flutter - 如何正确实现GridView上的复选框

scala - Akka 和 future 的同时请求太多

java - 以编程方式在 TextField 中触发事件 - JavaFX

java - 想要对 getElementsByTagName() 使用特殊值 ( * )

java - 是否可以在Java中创建一个函数来检测传递给它的任何参数是否为空? (可变参数)

java - 如何将 JLabel 和 JTextField 添加到 BorderLayout 中心的底部?

Scalatest 异步测试套件与最终和WhenReady (org.scalatest.concurrent)

flutter - 访问 API 响应并在单击按钮时打印它?