如何在此方法中摆脱@SuppressWarnings(“未选中”)?
@SuppressWarnings("unchecked")
public <T> Worker<T> findSimilarWorker(Worker<T> worker) {
// The variable workers is a Set<Worker<?>>
for(Worker<?> w : workers) {
// The following line is unchecked cast
if(w.isSimilar(worker)) return (Worker<T>) w;
}
return null;
}
答案 0 :(得分:5)
只要workers
被定义为产生Worker
类型的?
,您只需要需要类型转换。编译器正确地向您发出警告,因为workers
可能包含不同类型的Worker
(尽管workers
未显示,但我假设其类型不是{{1} }})。
(简短版:您不能,甚至不能使用T
支票,但不允许使用仿制品)