【问题标题】:In Java, what does it mean when a type is followed by angle brackets (as in List<Foo>)?在 Java 中,当类型后跟尖括号(如 List<Foo> 中)是什么意思?
【发布时间】:2014-02-03 04:15:27
【问题描述】:

我有时会在 中看到另一个对象类型声明旁边的类型对象。 例如:

NavigableMap<Double, Integer> colorMap = new TreeMap<Double, Integer>()
or
private final CopyOnWriteArrayList<EventListener> ListenerRecords =
new CopyOnWriteArrayList<EventListener>(); 

你能给我一个简单的解释吗?

【问题讨论】:

  • 非常感谢大家!我现在很好;)也感谢以正确的方式编辑标题!亲切的问候

标签: java generics


【解决方案1】:

它们在 java 中称为泛型,在 C++ 中称为模板。

http://java.sun.com/developer/technicalArticles/J2SE/generics/

【讨论】:

    【解决方案2】:

    这些被称为泛型。这里http://java.sun.com/docs/books/tutorial/java/generics/index.html 是他们的太阳。

    【讨论】:

      【解决方案3】:

      正如其他人之前所说:您与 Java 泛型打交道。从 SDK 1.5 开始,它们就使用 Java。

      例如:

      new CopyOnWriteArrayList<EventListener>()
      

      意味着您正在创建一个新的(并发)ArrayList,它能够存储 EventListener 类型的对象。如果您要以旧的(Java 1.5 之前)方式创建 ArrayList,例如:

      new ArrayList()
      

      所有包含的对象都是 Object 类型,您必须将它们转换为它们的真实类型。另见http://en.wikipedia.org/wiki/Generics_in_Java#Motivation_for_generics

      【讨论】:

      • 非常好!很容易解释!
      【解决方案4】:

      这些在 Java 中称为泛型。它们为您提供了一种方法来告诉编译器该集合将包含什么类型。

      http://java.sun.com/j2se/1.5.0/docs/guide/language/generics.html

      【讨论】:

        【解决方案5】:

        它们被称为泛型,允许编译器对列表等内容进行类型检查,同时也减少了您在代码中必须进行的转换量。

        这在阅读代码时也很有帮助,因为您知道可以将什么类型的对象放入相关项目中,或者期望从中得到什么类型。

        Java 的实现不如 C++ 彻底,因为 Java 仅在编译时可用。

        在运行时,类型信息不再可用。

        【讨论】:

          【解决方案6】:

          在您的示例 TreeMap 中,TreeMap 的键具有 Double 类型,并且该键引用的值具有 Integer 类型。正如已经回答的那样,它被称为泛型。 这是 java 1.5 中引入的扩展。这使代码更具可读性

          【讨论】:

            【解决方案7】:

            它们是Generics,用一种或多种类型编写的类,稍后指定,因此它们可以与任何类型一起使用。泛型对于容器或算法非常有用,其中使用的算法或数据结构独立于存储或操作的实际类型。

            【讨论】:

              猜你喜欢
              • 2011-09-30
              • 2011-06-20
              • 2021-11-26
              • 1970-01-01
              • 2018-07-15
              • 1970-01-01
              • 2023-03-15
              • 1970-01-01
              相关资源
              最近更新 更多