以下代码来自1.8
版本的LinkedList.java
。我不明白为什么调用 this()
?构造函数 LinkedList()
似乎什么也没做?
/**
* Constructs an empty list.
*/
public LinkedList() {
}
/**
* Constructs a list containing the elements of the specified
* collection, in the order they are returned by the collection's
* iterator.
*
* @param c the collection whose elements are to be placed into this list
* @throws NullPointerException if the specified collection is null
*/
public LinkedList(Collection<? extends E> c) {
this();
addAll(c);
}
你是对的。它什么也不做。空构造函数调用super()
默认情况下。没有this()
第二个构造函数也会调用super()
默认情况下。我的猜测是 LinkedList()
中曾经进行过一些初始化并调用this()
,此初始化也用于 LinkedList(Collection<? extends E> c)
。现在它是无用且无害的剩余物。
我是一名优秀的程序员,十分优秀!