什么部分是参数化类型?

时间:2013-12-08 16:39:36

标签: java

我理解ArrayList<String> list1 = new ArrayList<String>();的作用,但是哪个部分称为参数化类型?

赋值运算符左侧的类型变量或右侧的构造函数?当他们说参数化类型时,它们是指构造在角括号内定义参数化类型的方式,例如ArrayList<String>()

因为我知道常规List = new List()没有参数化类型。

问题是:哪个部分是参数化类型?左侧或右侧:ArrayList<String> list1 or new ArrayList<String>();

1 个答案:

答案 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是类型参数。