有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    只要workers被定义为产生类型?Worker,您就只需要需要类型转换。编译器警告您这一点是正确的,因为workers可能包含不同类型的Worker(虽然未显示workers,但我假设它不是T类型)

    (简短版本:您不能,即使使用不允许泛型的instanceof检查也不行)