我只是通过收集java教程阅读并想知道为什么<E> 静态后需要它?
public static<E> Set<E> removeDups(Collection<E> c) {
return new LinkedHashSet(c);
}
谢谢,莎拉
为了便于阅读,静态参数名称和通用参数名称之间通常存在空格.static将方法声明为static,即不需要调用它的实例.该<E>声明有一个无界的泛型参数称为E用来参数化方法的参数和/或返回值.这里,它在返回类型中使用,Set<E>声明方法返回一组E,并在参数中Collection<E>指示该方法采用E的集合.
未指定E的类型,只是返回值和方法参数必须通常使用相同的类型进行参数化.编译器在调用方法时确定实际类型.例如,
Collection<String> myStrings = new ArrayList<String>();
.. add strings
Set<String> uniqueStrings = SomeClass.removeDups(myStrings);
Run Code Online (Sandbox Code Playgroud)
如果尝试对两个集合使用不同的参数化类型,例如
Set<Integer> uniqueStrings = SomeClass.removeDups(myStrings);
Run Code Online (Sandbox Code Playgroud)
这将生成编译器错误,因为通用参数不匹配.
| 归档时间: |
|
| 查看次数: |
1490 次 |
| 最近记录: |