- transform:對於ListenableFuture的返回值進行轉換。
- allAsList:對多個ListenableFuture的合併,返回一個當所有Future成功時返回多個Future返回值組成的List對象。注:當其中一個Future失敗或者取消的時候,將會進入失敗或者取消。
- successfulAsList:和allAsList相似,唯一差別是對於失敗或取消的Future返回值用null代替。不會進入失敗或者取消流程。
- immediateFuture/immediateCancelledFuture: 立即返回一個待返回值的ListenableFuture。
- makeChecked: 將ListenableFuture 轉換成CheckedFuture。CheckedFuture 是一個ListenableFuture ,其中包含了多個版本的get 方法,方法聲明拋出檢查異常.這樣使得創建一個在執行邏輯中可以拋出異常的Future更加容易
- JdkFutureAdapters.listenInPoolThread(future): guava同時提供了將JDK Future轉換為ListenableFuture的接口函數。
- addCallBack為Future增加回調
以上為Guava工作包中Future的主要方法
下面比較下allAsList與successfulAsList
兩個正常的future聚合後走success流程
構建一個會拋出異常的future,聚合,此時allAsList,走onFailure流程,打印:
針對有異常Future聚合,successfulAsList仍然會走成功流程,出錯的future會以null值返回,打印:
閱讀更多 SDN界的小學生 的文章