0

想知道是什么the first <E> in the <E> Set<E>意思?

例如在下面的代码中;

我知道这是一个返回类型的公共静态方法Set<E>,但从未见过<E> Set<E>?

public static <E> Set<E> union(Set<E> s1, Set<E> s2) {
   Set<E> result = new HashSet<E>(s1);
   result.addAll(s2);
   return result;
}

任何有关相同的帮助/参考将不胜感激。

4

3 回答 3

7

向编译器<E>表示该方法union是一个泛型方法,它具有一个名为的泛型类型参数E。否则编译器会假定这E是一个类型。

参考

于 2013-09-18T15:01:12.133 回答
0

第一个是该方法接受的类型参数。

例如,如果你用 Integer 调用它,它看起来像

<Integer>Class.union(some Set<Integer>, another Set<Integer>)

那么返回类型将是Set<Integer>

于 2013-09-18T15:02:09.667 回答
0

E beforeSet<E>表示此方法中未来出现的 E(只要 E 用作数据类型名称,如Set<E>)表示泛型类型。参考通用方法(http://docs.oracle.com/javase/tutorial/extra/generics/methods.html

于 2013-09-18T15:06:49.410 回答