java中有没有办法让ListModel只接受某种类型?
我正在寻找的是DefaultListModel<String>
或TypedListModel<String>
,因为DefaultListModel只实现了addElement(Object obj)
和get(int index)
,当然它返回Object
。
这样我总是必须从Object
投射到例如String
并且无法保证我的模型中只有字符串,即使我想强制执行。
这是一个缺陷,还是我以错误的方式使用列表模型?
答案 0 :(得分:3)
类DefaultListModel确实在源代码中位于顶部:
这个类松散地实现了
java.util.Vector
API,因为它实现了1.1.x版本java.util.Vector
,没有集合类支持, 并在发生更改时通知ListDataListener
。 现在它委托给Vector
, 在未来的版本中,它将是一个真正的Collection实现。
听起来它只是一个老班。如果你非常绝望,我想你可以编写自己的版本(实现AbstractListModel接口)。如果你只是厌倦了必须将它强制转换为String,那么foreach语法肯定会为你做这个吗?