ExtendedSettableFuture extends AbstractFuture<V> { @Override public boolean set(@Nullable V value) { return super.set(value); } private  ExtendedSettableFuture(); static ExtendedSettableFuture<V> create(); @Override boolean set(@Nullable V value); @Override boolean setException(Throwable throwable); void setAsync(ListenableFuture<? extends V> delegate);  }
@Test public void testSet() throws Exception { ExtendedSettableFuture<String> future = ExtendedSettableFuture.create(); future.set("abc"); assertTrue(future.isDone()); assertFalse(future.isCancelled()); assertFalse(future.checkWasInterrupted()); assertEquals(future.get(), "abc"); }