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

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

    public ElementsList()
    {
        list = new ArrayList<E>;
    }
}


我不明白为什么当您创建构造函数时,您实际上不必提及该类将保留某些元素的事实。我的意思是您不必这样做:

public ElementsList<E>{

  list = new ArrayList<E>;
}


简短的故事:为什么类的名称为ElementsList<E>,而构造函数没有<E>部分?

最佳答案

在构造函数声明中,您无需再次提及元素类型E,因为您已经在类声明级别进行了声明。

即你已经宣布你的课程了

public class ElementsList<E> {


因此标识符E已经表示您的元素类型。

将构造函数写为

   public <E> ElementsList() {...}


有效地表示另一种与您的类的元素类型无关的类型。

07-26 07:41