泛型参数影子引用类型? (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 名称来消除歧义(只要您使用包,就像您应该的那样)。此外,这是为泛型类型使用传统短类型名称的一个很好的论据。
假设我们有以下场景:
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 名称来消除歧义(只要您使用包,就像您应该的那样)。此外,这是为泛型类型使用传统短类型名称的一个很好的论据。