propiedades definicion java future

definicion - Cómo crear un futuro completo en Java



textarea java netbeans (5)

¿Cuál es la mejor manera de construir un futuro completo en Java? Implementé mi propio CompletedFuture continuación, pero esperaba algo como esto que ya existe.

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(); } }


Apache Commons Lang define una implementación similar llamada ConstantFuture, puede obtenerla llamando:

Future<T> future = ConcurrentUtils.constantFuture(T myValue);


En Java 6 puedes usar lo siguiente:

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


En Java 8 puede usar el CompletableFuture integrado:

Future future = CompletableFuture.completedFuture(value);


Encontré una clase muy similar a la tuya en Java rt.jar

com.sun.xml.internal.ws.util.CompletedFuture

También le permite especificar una excepción que se puede lanzar cuando se invoca get (). Simplemente configúrelo como nulo si no desea lanzar una excepción.