我迅速在Google上找到了答案,但找不到/认为准确的搜索参数。
我正在自学Java,但似乎找不到某种语法的含义。
public class Node<E>{ E elem; Node<E> next, previous; }
这<E>意味着什么?我模糊地记得箭头括号与向量有关,但是根据上面的代码,我感觉到它与枚举有关。
<E>
任何帮助或澄清将不胜感激。谢谢。
这些称为泛型。
通常,这些在定义类,接口和方法时使 类型 (类和接口)成为参数。
与使用非泛型代码相比,使用泛型有很多好处,如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