泛型参数影子引用类型? (java)

do generic type param shadow reference types? (java)

假设我们有以下场景:

public class SomeClass {

}

现在我们有一个泛型 class,类型参数是 SomeClass 而不是 T

public class GenericClass <SomeClass> {
    List<SomeClass> list;

    public GenericClass() {
         list = new ArrayList<>();
    }

    public void add(SomeClass obj) {
         list.add(obj);
    }
}

类型参数 SomeClass 会在整个 GenericClass 中隐藏引用数据类型 SomeClass 吗?

一句话-是的,它会影响SomeClass。不过,您仍然可以使用完全限定的 class 名称(例如 com.exmaple.SomeClass)来引用它。

。在这种情况下,这是一个 name shadow。您仍然可以使用完全限定的 class 名称来消除歧义(只要您使用包,就像您应该的那样)。此外,这是为泛型类型使用传统短类型名称的一个很好的论据。