我知道为了创建ArrayList类型的对象,我需要:
ArrayList<MyType> l = new ArrayList<MyType>();
Run Code Online (Sandbox Code Playgroud)
我知道,因为我在书中看到了这一点.
但是看看ArrayList构造函数的Java SE API,我看到:
ArrayList(Collection<? extends E> c)
我不明白,我怎么会想到指定我的新ArrayList对象将包含的对象类型?我如何从这个定义中知道我必须<MyType>
在实例化和变量声明期间指定?
为了确定声明中是否需要类型参数,您不要查看构造函数,而是查看类定义本身。构造函数的参数与对象本身的类型无关 - 构造函数可以采用任何类型的参数,就像任何其他方法一样。这是类定义:
public class ArrayList<E>
extends AbstractList<E>
implements List<E>, RandomAccess, Cloneable, Serializable
Run Code Online (Sandbox Code Playgroud)
该class ArrayList<E>
部分说有一个名为 ArrayList 的类,它需要一个类型参数(这里称为 E)。
归档时间: |
|
查看次数: |
9419 次 |
最近记录: |