我在Java构造中已经看过很多次类似于:
List <String> myList = Arrays.asList("element1","element2","element3");
或
Map<Integer, String> map;
现在我想知道这个<String>
或&lt;&gt;迹象正在做。或者特别是它的名称,以便我可以搜索它。在导致运营商之前我所做的所有搜索。那么有人可以告诉我这是怎么称呼的吗?
答案 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)
该通用类型参数 请参阅此处的文档:https://docs.oracle.com/javase/tutorial/java/generics/types.html
答案 2 :(得分:1)
Java支持泛型类型的概念。
这些类型具有共同的行为,无论其类型参数是什么。
例如,以List集合为例。 List是元素的顺序集合,List of Integer不同于字符串List,但基本逻辑是相同的。
因此,Java没有两个单独的类型ListOfInteger和ListOfString,而是具有List类型,带有一个type参数来指定元素的类型
所以&lt;和&gt;被称为类型参数,而List是泛型类型。