guava_ch

SettableFuture

SettableFuture是一个实现了ListenableFuture接口的类,我们可以使用这个类设置返回的值,或者我们可以在ListenableFuture上抛出给定的异常。SettableFuture 实例是通过静态方法被构件。如下是例子:

SettableFuture<String> sf = SettableFuture.create();
//设置返回值
sf.set("Success");
//或设置失败异常
sf.setException(someException);

例子中我们建立SettableFuture类实例。之后,如果我们想要设置被返回的值,我们可以调用set方法,并传递Future实例期待的返回值类型。又或者,我们想要为这个Future实例设置一个引起异常的错误,我们可以传递进一个合适的异常。当你有一个方法需要返回一个Future实例的时候,SettableFuture类则会十分有用。然而,如果你已经有一个要返回的值,并且不需要运行异步任务,下一章节会描述我们要如何使用SettableFuture类。