问题描述
我正在制作一个包含 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());