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类型不是泛型的固有问题。

取决于您是否要复制数据或保持连接。