一旦调用SetException方法,该设置的将来对象会发生什么



我有一个可设置的将来对象" temp",该对象具有上下文设置。此外,temp.addListener(new Runnable{...})方法也被调用,基本上是为其注册听众。但是,最终如果出现任何例外,则调用temp.setException()。如果setException称为侦听器会被删除或清除上下文(基本上是设置例外后可设置的将来对象会损坏)?

)?

代码流是这样的: -

  1. temp.setContext({temp.set(//some value is set if everything goes right) || temp.setException(//set exception if something comes up)});

  2. temp.addListener(new Runnable{ run(){temp.get()}})

调用setException()时,ListenableFuture将运行其侦听器。如果要编写在这种情况下运行的代码,则可以使用Futures.addCallback而不是addListener。(addCallback可让您指定仅在成功或仅在失败的情况下运行的代码。)

至于上下文中发生的情况:上下文不是ListenableFuture API的一部分。我不知道它是由您还是另一个库添加的。您必须咨询该课程以了解其行为。

最新更新