一尘不染

那是什么 Java中的语法含义?

java

我迅速在Google上找到了答案,但找不到/认为准确的搜索参数。

我正在自学Java,但似乎找不到某种语法的含义。

public class Node<E>{
    E elem;
    Node<E> next, previous;
}

<E>意味着什么?我模糊地记得箭头括号与向量有关,但是根据上面的代码,我感觉到它与枚举有关。

任何帮助或澄清将不胜感激。谢谢。


阅读 165

收藏
2020-12-03

共1个答案

一尘不染

这些称为泛型

通常,这些在定义类,接口和方法时使 类型 (类和接口)成为参数。

与使用非泛型代码相比,使用泛型有很多好处,如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
2020-12-03