Java:收藏

Qas*_*ker 0 java list arraylist

我正在创建一个具有ArrayList的类,所以当我调用构造函数时,它会初始化该数组:

public class ElementsList<E>
{
    private ArrayList<E> list;

    public ElementsList()
    {
        list = new ArrayList<E>;
    }
}
Run Code Online (Sandbox Code Playgroud)

我不明白为什么当你创建构造函数时,你真的不必提到这个类将保留某些元素的事实.我的意思是你不必这样做:

public ElementsList<E>{

  list = new ArrayList<E>;
}
Run Code Online (Sandbox Code Playgroud)

LONG STORY SHORT:为什么类的名称是ElementsList<E>,并且构造函数没有该<E>部分?

Tho*_*ger 5

在构造函数声明中,您不需要E再次提及元素类型,因为您已经在类声明级别执行了此操作.

即你已经宣布了你的课程

public class ElementsList<E> {
Run Code Online (Sandbox Code Playgroud)

所以标识符E已经表示你的元素类型.

将构造函数编写为

   public <E> ElementsList() {...}
Run Code Online (Sandbox Code Playgroud)

将有效地表示另一种类型,它独立于您的类的元素类型.