Java 如何将DefaultListModel强制转换为列表<;对象>;?
我必须将Java 如何将DefaultListModel强制转换为列表<;对象>;?,java,Java,我必须将DefaultListModel(在列表框中)中的所有元素放入列表中。在Java中如何做到这一点?根据ye olde的说法,您需要使用elements()方法并迭代它们,将它们添加到列表中DefaultListModel与普通集合类不在同一层次结构中 Arrays.asList(model.toArray()); 或者使用jarnbjo建议的方法 如果您想复制内容,那么可以使用DefaultListModel.toArray获取数据并用它构建您最喜欢的列表实现。或者,您可以在ListM
DefaultListModel
(在列表框中)中的所有元素放入列表中。在Java中如何做到这一点?根据ye olde的说法,您需要使用elements()
方法并迭代它们,将它们添加到列表中DefaultListModel
与普通集合类不在同一层次结构中
Arrays.asList(model.toArray());
或者使用jarnbjo建议的方法 如果您想复制内容,那么可以使用DefaultListModel.toArray
获取数据并用它构建您最喜欢的列表
实现。或者,您可以在ListModel.getElementAt
ListModel.getSize
时间上循环
如果希望在集合之间建立实时连接而不是副本,请使用AbstractList
:
public static List<Object> asList(final DefaultListModel model) {
return new AbstractList<Object>() {
@Override public Object get(int index) {
return model.getElementAt(index);
}
...
};
}
公共静态列表asList(最终默认列表模型){
返回新的AbstractList(){
@重写公共对象get(int索引){
返回模型.getElementAt(索引);
}
...
};
}
您可能希望在其中滑动Class.cast
,但Swing类型不是泛型的固有问题。取决于您是否要复制数据或保持连接。