public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_conversation, container, false); mainActivity = (MainActivity) getActivity(); mainActivity.setAddChatVisibility(true); return view; }
:执行给定的任务,在完成所有任务后返回持有其状态和结果的Futures列表。对于返回列表的每个元素,invokeAll()
都为true。请注意,已完成的任务可能正常终止或通过抛出异常终止。如果在此操作正在进行时修改了给定集合,则此方法的结果未定义。
CompletableFuture
还通过以下政策实施了Future:
由于(与
Future.isDone()
不同)此类无法直接控制导致其完成的计算,因此取消仅被视为异常完成的另一种形式。取消方法与FutureTask
具有相同的效果。方法completeExceptionally(new CancellationException())
可用于确定isCompletedExceptionally()
是否以任何特殊方式完成。如果使用
CompletableFuture
完成特殊操作,则方法CompletionException
和get()
会抛出get(long, TimeUnit)
,其原因与相应的{{1}相同}}。为了简化大多数情况下的使用,此类还定义了方法ExecutionException
和CompletionException
,而不是直接在这些情况下抛出join()
。
之间有什么区别
getNow(T)
与CompletionException
invokeAll()
由于JDK 1.7不支持Future
,使用CompletableFuture
的{{1}}可以获得相同的结果吗?
答案 0 :(得分:1)
当然,如果你写一些代码,你可以这样做:
CompletableFuture
。有关示例,请检查this implementation on grepcode。ExecutorService
(您已经使用过的),并扩展protected
方法newTaskFor()
,负责从Future
或{Runnable
实例化Callable
{1}},在其中创建new CompletableFuture()
。