Java中是否有ResolvedFuture类?

Java中是否有ResolvedFuture类?,java,concurrency,future,Java,Concurrency,Future,有时,您已经知道计算结果,但您的接口要求您返回一个未来。与其实现一个长的匿名类,或者扩展AbstractFuture或FutureTask(它们本身很复杂),我发现创建一个实现Future的小型holder类更简单 我的问题是-在一个标准库中是否已经存在类似于我在下面所写的类 用法: Future<Boolean> iHaveToReturnAFutureButIAlreadyKnowTheAnswer() { return new ResolvedFuture(true);

有时,您已经知道计算结果,但您的接口要求您返回一个
未来
。与其实现一个长的匿名类,或者扩展AbstractFuture或FutureTask(它们本身很复杂),我发现创建一个实现
Future
的小型holder类更简单

我的问题是-在一个标准库中是否已经存在类似于我在下面所写的类

用法:

Future<Boolean> iHaveToReturnAFutureButIAlreadyKnowTheAnswer() {
    return new ResolvedFuture(true);
}
/**
 * Used when you need to return a Future, but you already have the answer.
 */
public class ResolvedFuture<T> implements Future<T>{
    private final T item;

    public ResolvedFuture(T item) {
        this.item = item;
    }

    @Override
    public boolean cancel(boolean mayInterruptIfRunning) {
        return false;
    }

    @Override
    public boolean isCancelled() {
        return false;
    }

    @Override
    public boolean isDone() {
        return true;
    }

    @Override
    public T get() throws InterruptedException, ExecutionException {
        return item;
    }

    @Override
    public T get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException {
        return item;
    }
}
Future我必须扭转未来,但已准备好知道答案(){
返回新的ResolvedFuture(true);
}
代码:

Future<Boolean> iHaveToReturnAFutureButIAlreadyKnowTheAnswer() {
    return new ResolvedFuture(true);
}
/**
 * Used when you need to return a Future, but you already have the answer.
 */
public class ResolvedFuture<T> implements Future<T>{
    private final T item;

    public ResolvedFuture(T item) {
        this.item = item;
    }

    @Override
    public boolean cancel(boolean mayInterruptIfRunning) {
        return false;
    }

    @Override
    public boolean isCancelled() {
        return false;
    }

    @Override
    public boolean isDone() {
        return true;
    }

    @Override
    public T get() throws InterruptedException, ExecutionException {
        return item;
    }

    @Override
    public T get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException {
        return item;
    }
}
/**
*当您需要返回未来,但您已经有了答案时使用。
*/
公共类ResolvedFuture实现了未来{
私人期末考试项目;
公共解决未来(T项){
this.item=项目;
}
@凌驾
公共布尔值取消(布尔值可能中断刷新){
返回false;
}
@凌驾
公共布尔值已取消(){
返回false;
}
@凌驾
公共布尔isDone(){
返回true;
}
@凌驾
public T get()抛出InterruptedException、ExecutionException{
退货项目;
}
@凌驾
公共T get(长超时,时间单位)抛出InterruptedException、ExecutionException、TimeoutException{
退货项目;
}
}

标准库不支持它,但某些第三方库可能包含这样的实现。例如,来自谷歌番石榴