Java 中有没有办法让 ListModel 只接受特定类型?
我要找的是类似 DefaultListModel<String>
的东西或 TypedListModel<String>
,因为 DefaultListModel 只实现了 addElement(Object obj)
和 get(int index)
返回 Object
当然。
那样我总是必须从 Object
转换例如String
并且不能保证我的模型中只有字符串,即使我想强制执行。
这是缺陷还是我使用列表模型的方式有误?
最佳答案
DefaultListModel 类确实在源代码的顶部有这个:
This class loosely implements the
java.util.Vector
API, in that it implements the 1.1.x version ofjava.util.Vector
, has no collection class support, and notifies theListDataListener
s when changes occur. Presently it delegates to aVector
, in a future release it will be a real Collection implementation.
听起来这只是一个老类。我想如果您足够绝望,您可以编写自己的版本(实现 AbstractListModel 接口(interface))。如果您只是对必须一直将其转换为字符串感到恼火,那么 foreach 语法肯定会为您做到这一点吗?
关于java - 键入 DefaultListModel 以避免强制转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2549181/