本文介紹了Vert.x Java列表<;期貨&>參數(shù)化的處理方法,對(duì)大家解決問(wèn)題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧!
問(wèn)題描述
前幾天,我遇到了Vert.x期貨的一個(gè)奇怪問(wèn)題,它沒(méi)有破解代碼,但仍然困擾著我。
沒(méi)有參數(shù)的Future將導(dǎo)致以下警告:
Future是原始類(lèi)型。對(duì)泛型類(lèi)型Future的引用應(yīng)參數(shù)化
添加參數(shù),問(wèn)題解決:
Future<YourClassName> future = ...
處理期貨列表時(shí),您也可以很好地將其參數(shù)化:
List<Future<YourClassName>> future = ...
但CompositeFuture.all()
似乎無(wú)法處理參數(shù)列表,因此強(qiáng)制您刪除該參數(shù)。
有沒(méi)有辦法使期貨的參數(shù)化列表與CompositeFuture
一起工作,或者我們只是必須忽略該警告?它不會(huì)破壞任何東西,但如果找到解決方案來(lái)消除該警告仍將是件好事。
推薦答案
一方面,CompositeFuture.all()
不能與參數(shù)化期貨列表一起使用。由于類(lèi)型擦除,這是開(kāi)發(fā)人員做出的設(shè)計(jì)決定。
但實(shí)際上,CompositeFuture.all()
并沒(méi)有做什么特別的事情。因此,您可能有自己的帶有靜態(tài)方法的接口,這樣做也是一樣的:
interface MyCompositeFuture extends CompositeFuture {
// This is what the regular does, just for example
/*
static CompositeFuture all(List<Future> futures) {
return CompositeFutureImpl.all(futures.toArray(new Future[futures.size()]));
}
*/
static <T> CompositeFuture all(List<Future<T>> futures) {
return CompositeFutureImpl.all(futures.toArray(new Future[futures.size()]));
}
}
現(xiàn)在:
List<Future<String>> listFuturesT = new ArrayList<>();
// This works
MyCompositeFuture.all(listFuturesT);
List<Future> listFutures = new ArrayList<>();
// This doesnt, and that's the reason for initial design decision
MyCompositeFuture.all(listFutures);
這篇關(guān)于Vert.x Java列表<;期貨&>參數(shù)化的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,