我刚刚浏览了一些代码,我看到了以下方法
public static <V> Set<V> newHashSet() {
return new HashSet<V>();
}
静态关键字后的<V>
是什么意思? Set<V>
是什么意思?我使用了类型为String等的set,但是<V>
是什么?
答案 0 :(得分:4)
V用于泛型。如果你写
// ClassName is the class newHashSet is declared in
ClassName.<String>newHashSet();
它将与
一样有效ClassName.<Integer>newHashSet();
这样,您可以将此方法重用于不同类型。 它被称为泛型。
Set是函数返回的内容。 静态意味着该函数属于一个类,而不属于该类的实例。
答案 1 :(得分:-1)
它指定了在此方法中使用的泛型类型。由于该方法是静态的,因此它不会使用为该类指定的任何泛型 - 因为没有类,基本上,当它归结为编译器时。因此,对于使用泛型的静态方法,必须在返回类型前声明泛型类型。