第一个<e>在公共静态中表示什么<e>设置<e> someFunction(){} </e> </e> </e>

时间:2013-09-18 14:59:19

标签: java generics

想知道什么是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;
}

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

3 个答案:

答案 0 :(得分:7)

<E>表示编译器方法union泛型方法,其具有名称为{{的通用类型参数 1}}。否则,编译器会认为E是一种类型。

<强>参考

答案 1 :(得分:0)

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

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

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

然后返回类型为Set<Integer>

答案 2 :(得分:0)

E Set<E>之前的E表示此方法中将来出现的E(E在哪里用作数据类型名称,如Set<E>)表示泛型类型。请参阅通用方法(http://docs.oracle.com/javase/tutorial/extra/generics/methods.html