想知道什么是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;
}
任何有关相同的帮助/参考将不胜感激。
答案 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)