如何将DefaultListModel强制转换为List <Object>?

Ant*_*nte 5 java

我必须将DefaultListModel(在列表框中)的所有元素放入一个List<Object>.我怎么能用Java做到这一点?

jar*_*bjo 11

Arrays.asList(model.toArray());
Run Code Online (Sandbox Code Playgroud)


Tom*_*ine 7

如果您想复制内容,那么您可以使用它DefaultListModel.toArray来获取数据并构建您喜欢的List实现.或者,你可以循环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);
          }
          ...
     };
 }
Run Code Online (Sandbox Code Playgroud)

您可能希望Class.cast在那里滑动,但Swing类型不存在泛型存在固有问题.