java如何在这种通用方法中避免SuppressWarnings(“未检查”)?
我如何在这个方法中去掉@SuppressWarnings(“unchecked”)呢
@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;
}
# 1 楼答案
只要
workers
被定义为产生类型?
的Worker
,您就只需要需要类型转换。编译器警告您这一点是正确的,因为workers
可能包含不同类型的Worker
(虽然未显示workers
,但我假设它不是T
类型)(简短版本:您不能,即使使用不允许泛型的
instanceof
检查也不行)