如何在此通用方法中避免SuppressWarnings("未选中")?

fhu*_*cho 1 java generics

如何在此方法中摆脱@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;
}
Run Code Online (Sandbox Code Playgroud)

aka*_*IOT 5

只要workers定义为Worker生成类型的s ?,您只需要进行类型转换.编译器正确地警告你这个,因为workers可能包含一个Worker不同的类型(虽然workers没有显示,我假设它不是类型T).

(简短版本:你不能,甚至没有instanceof支票,不允许使用仿制药)