什么是<和>用Java调用?

时间:2016-02-16 09:31:46

标签: java

我在Java构造中已经看过很多次类似于:

List <String> myList = Arrays.asList("element1","element2","element3");

Map<Integer, String> map;

现在我想知道这个<String>或&lt;&gt;迹象正在做。或者特别是它的名称,以便我可以搜索它。在导致运营商之前我所做的所有搜索。那么有人可以告诉我这是怎么称呼的吗?

3 个答案:

答案 0 :(得分:3)

&LT;&GT;被称为钻石操作员。使用它声明类型变量,例如<E>,并传递reference types。查找JLS第4.4节Type Variables

List接口在E菱形运算符中声明类型变量 <>

public interface List<E> extends Collection<E>

当您执行List <String> myList实际传递参考类型E的类型参数时。

当您在右侧遇到空<>时,Java会推断=运算符左侧的任何类型参数。

您可以像使用像E这样的菱形运算符将String类型传递给<String>作为其值来理解它。由于Generics使用 Type Erasure ,因此不正确。您可以发送任何类型。只要它满足变量类型E的绑定。

结果它变成了一个String对象列表。 如果您发送<Object>而不是它成为对象列表。

答案 1 :(得分:1)

答案 2 :(得分:1)

Java支持泛型类型的概念。

这些类型具有共同的行为,无论其类型参数是什么。

例如,以List集合为例。 List是元素的顺序集合,List of Integer不同于字符串List,但基本逻辑是相同的。

因此,Java没有两个单独的类型ListOfInteger和ListOfString,而是具有List类型,带有一个type参数来指定元素的类型

所以&lt;和&gt;被称为类型参数,而List是泛型类型。