我理解ArrayList<String> list1 = new ArrayList<String>();
的作用,但是哪个部分称为参数化类型?
赋值运算符左侧的类型变量或右侧的构造函数?当他们说参数化类型时,它们是指构造在角括号内定义参数化类型的方式,例如ArrayList<String>()
?
因为我知道常规List = new List()
没有参数化类型。
问题是:哪个部分是参数化类型?左侧或右侧:ArrayList<String> list1 or new ArrayList<String>()
;
答案 0 :(得分:5)
type是一个类,一个接口,一个数组或一个枚举(也是原语,但这些不适用于此)。
参数化类型是声明为使用泛型的任何类型。例如,在
中public class MyCustomGenerics<T,E> {
...
}
MyCustomGenerics
是参数化类型。
因此,ArrayList
是参数化类型。它被声明为
public class ArrayList<E> extends AbstractList<E>
implements List<E>, RandomAccess, Cloneable, java.io.Serializable
{
在
ArrayList<String> list1 = new ArrayList<String>();
String
是类型参数。