将 DefaultListModel 转换为 Java 中的列表

问题描述

我正在制作一个包含 JList 的 Swing 应用程序,并且列表中的所有对象都存储在一个 DefaultListModel 中。同时,我需要将列表传递给接收列表作为输入的方法。如何将 DefaultListModel 转换为列表?

这是我得到的错误

The method computeSpending(List<Subscription>) in the type SubscriptionSpending is not applicable for the arguments (DefaultListModel<Subscription>)

解决方法

如何将 DefaultListModel 转换为列表?

Arrays.asList(defaultListModel.toArray());


说明:

DefaultListModel 不是 List 的子类。因此不能直接将其作为 List 参数传递。相反,您可以将参数类型更改为 ListModel<E>。如:

computeSpending(ListModel<Subscription>)

还有, 如果您必须将 DefaultListModel<Subscription> 传递到 List,您可以使用:

List<Subscription> asList = Arrays.asList(defaultListModel.toArray());