这种方法意味着什么?什么是静态后的<v>?</v>

时间:2014-11-07 15:54:27

标签: java

我刚刚浏览了一些代码,我看到了以下方法

  public static <V> Set<V> newHashSet() {
    return new HashSet<V>();
  }

静态关键字后的<V>是什么意思? Set<V>是什么意思?我使用了类型为String等的set,但是<V>是什么?

2 个答案:

答案 0 :(得分:4)

V用于泛型。如果你写

// ClassName is the class newHashSet is declared in
ClassName.<String>newHashSet();

它将与

一样有效
ClassName.<Integer>newHashSet();

这样,您可以将此方法重用于不同类型。 它被称为泛型。

Set是函数返回的内容。 静态意味着该函数属于一个类,而不属于该类的实例。

答案 1 :(得分:-1)

它指定了在此方法中使用的泛型类型。由于该方法是静态的,因此它不会使用为该类指定的任何泛型 - 因为没有类,基本上,当它归结为编译器时。因此,对于使用泛型的静态方法,必须在返回类型前声明泛型类型。