【问题标题】:Typed DefaultListModel to avoid casting键入 DefaultListModel 以避免强制转换
【发布时间】:2010-03-30 22:30:58
【问题描述】:

在 java 中有没有办法让 ListModel 只接受某种类型? 我正在寻找类似DefaultListModel<String>TypedListModel<String> 的东西,因为DefaultListModel 只实现addElement(Object obj)get(int index),当然返回Object

这样我总是必须从 Object 转换为例如String 并不能保证我的模型中只有字符串,即使我想强制执行。

这是一个缺陷还是我以错误的方式使用列表模型?

【问题讨论】:

    标签: java generics list model casting


    【解决方案1】:

    类 DefaultListModel 确实在源代码的顶部有这个:

    这个类松散地实现了java.util.Vector API,因为它实现了 1.1.x 版本的 java.util.Vector,没有集合类支持, 并在发生更改时通知ListDataListeners。 目前它委托给Vector, 在未来的版本中,它将是一个真正的 Collection 实现。

    听起来这只是一个古老的课程。如果你足够绝望,我想你可以编写自己的版本(实现 AbstractListModel 接口)。如果您只是对必须一直将其转换为 String 感到恼火,那么 foreach 语法肯定会为您做到这一点吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-20
      • 1970-01-01
      • 2014-01-06
      相关资源
      最近更新 更多