3
我學習的ExecutorService和可調用,但是從intelij說我做這一行的選中分配得到一個警告:ExecutorService中選中分配
Future<OrderWorker<OfferType>> future = executorService.submit(new OrderWorker<OfferType>(anOfferSet));
我不明白如何正確地分配。下面的代碼:
ExecutorService executorService = Executors.newCachedThreadPool();
List<Future<OrderWorker<OfferType>>> futures = new ArrayList<>();
for (OfferType anOfferSet : offerSet) {
// the next assignment is unchecked:
Future<OrderWorker<OfferType>> future = executorService.submit(new OrderWorker<OfferType>(anOfferSet));
futures.add(future);
}
令工人:
public class OrderWorker<I extends OfferType> implements DataWorker {
private Logger log = Logger.getLogger(OrderWorker.class);
private final OfferType offer;
public OrderWorker(I data) {
this.offer = data;
}
public OfferType getOffer() {
return offer;
}
@Override
public Object call() throws Exception {
Thread.sleep(5000);
log.info(offer.getListingPrice().getAmount());
return this;
}
}
DataWorker接口:
interface DataWorker<I extends OfferType> extends Callable<I> {}
OfferType
是一個簡單的POJO類。
編輯
我也試圖給DataWorker實現它當類型:
public class OrderWorker<I extends OfferType> implements DataWorker<I>
這使得在與贖回()調用OrderWorker衝突的錯誤說調用() - >不兼容的返回類型
我在做什麼錯,我該怎麼做才能使作業檢查?
'延伸Callable>'它的工作原理與您所描述的一樣!謝謝! –
@ J.Doe好消息 –