<E>语法在Java中是什么意思?

d.lanza38:

我迅速在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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章