泛型类型java:类型安全警告

35g0bw71  于 2021-07-03  发布在  Java
关注(0)|答案(1)|浏览(380)

当我想在泛型类中使用泛型类的类时,我得到了一个类型安全警告,下面的代码将更好地解释:

class A<U, V> {

    private class B<W, X> {
        X x;
        W w;
    }

    public A() {
        B<U, V> c = C.someMethod(B.class); // warning here
    }

    static class C {
        public static <T> T someMethod(Class<T> clazz) {
            return null;
        }
    }

}

有什么办法解决这个问题吗?
请注意b班是私人的。

nszi6y05

nszi6y051#

在此行中设置对编译器不重要的类型时,您的工作不正确:

B<U, V> c = C.someMethod(B.class);

对编译器来说,只有b表示恐慌。所以你应该写。

B<?, ?> c = C.someMethod(B.class);

相关问题