我迅速在Google上找到了答案,但找不到/认为准确的搜索参数。
我正在自学Java,但似乎找不到某种语法的含义。
public class Node<E>{
E elem;
Node<E> next, previous;
}
这<E>
意味着什么?我模糊地记得箭头括号与向量有关,但是基于上面的代码,我感觉到它与枚举有关。
任何帮助或澄清将不胜感激。谢谢。
这些称为泛型。
通常,这些在定义类,接口和方法时使类型(类和接口)成为参数。
与使用非泛型代码相比,使用泛型有很多好处,如Java教程中所示:
在编译时进行更强的类型检查。Java编译器将强类型检查应用于通用代码,如果代码违反类型安全,则会发出错误。修复编译时错误比修复运行时错误容易,后者可能很难找到。
例如:
// without Generics
List list = new ArrayList();
list.add("hello");
// With Generics
List<Integer> list = new ArrayList<Integer>();
list.add("hello"); // will not compile
使程序员能够实现通用算法。通过使用泛型,程序员可以实现对不同类型的集合进行工作,可以自定义并且类型安全且易于阅读的泛型算法。
消除演员阵容。
例如,以下不带泛型的代码段需要强制转换:
List list = new ArrayList();
list.add("hello");
String s = (String) list.get(0);
当重写以使用泛型时,代码不需要强制转换:
List<String> list = new ArrayList<String>();
list.add("hello");
String s = list.get(0); // no cast
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句