106 votes

Comment créer un futur complet en java

Quelle est la meilleure façon de construire un futur complet en Java ? J'ai implémenté mon propre CompletedFuture ci-dessous, mais j'espérais que quelque chose de ce genre existe déjà.

public class CompletedFuture<T> implements Future<T> {
    private final T result;

    public CompletedFuture(final T result) {
        this.result = result;
    }

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

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

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

    @Override
    public T get() throws InterruptedException, ExecutionException {
        return this.result;
    }

    @Override
    public T get(final long l, final TimeUnit timeUnit) throws InterruptedException, ExecutionException, TimeoutException {
        return get();
    }
}

-6voto

AlexV Points 165

En Java 6, vous pouvez utiliser les éléments suivants :

Promise<T> p = new Promise<T>();
p.resolve(value);
return p.getFuture();

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X