java swing中DefaultListModel
的removeAllElements()
和clear()
方法有什么区别?
DefaultListModel的java文档说:-
公共空白清除()
删除所有元素。该列表将此调用返回后为空(除非抛出异常)。
和
public void removeAllElements()
从此列表中删除所有组件并将其大小设置为零。
所以两者基本上都从列表中删除了所有元素,所以有什么区别呢?如何决定何时使用哪个?
它们都是相同的
DefaultListModel
在引擎盖下使用Vector
clear()方法后来在Vector被重写以适合Collection API时添加。
在版本1.3中,Collections API
进入,因此Vector
被重新编写以适应List
接口。
为了使其向后兼容,他们只需将调用转发到可用的旧的现有方法&可能的
编辑
来自Java来源:
/** * Removes all components from this list and sets its size to zero. * <blockquote> * <b>Note:</b> Although this method is not deprecated, the preferred * method to use is <code>clear</code>, which implements the * <code>List</code> interface defined in the 1.2 Collections framework. * </blockquote> * * @see #clear() * @see Vector#removeAllElements() */
public void removeAllElements() {
int index1 = delegate.size()-1;
delegate.removeAllElements();
if (index1 >= 0) {
fireIntervalRemoved(this, 0, index1);
}
}