【问题标题】:Why does javax.xml.stream.XMLEventReader extend raw Iterator instead of Iterator<XmlEvent>?为什么 javax.xml.stream.XMLEventReader 扩展原始 Iterator 而不是 Iterator<XmlEvent>?
【发布时间】:2012-11-29 15:22:45
【问题描述】:

为什么 XMLEventReader 扩展原始迭代器?由于 XMLEventReader.next() 返回 Object,我们必须使用显式强制转换。不应该是这样吗:

public interface XMLEventReader extends Iterator<XmlEvent>

【问题讨论】:

  • 我猜它是在泛型之前添加的,但 XMLEventReader 似乎是added in Java 5(虽然this page says it was added in Java 6)。
  • Hashtable是JDK1.0以后的,不过1.5以后是泛型的。现在是 Hashtable
  • @BrendanLong:你的第一个链接是 ee5 api,它是在版本 6 中添加到 se 中的,但标准要旧得多。

标签: java stax


【解决方案1】:

Stax api 定义在jsr 173,规范在 2004 年 3 月达到最终发布状态。引入泛型的 JDK 5 仅在 2004 年 9 月发布。jsr 173 的开发开始得更早,所以它针对较早的 java 版本。

应该可以在 api 的进一步发布中引入泛型,但我猜专家组中没有人加紧这项任务。

请注意,XMLEventReader 也有一个不需要强制转换的 nextEvent 方法。

【讨论】:

  • 我注意到没有人提出这些更改,无论是在您的 jsr 173 链接上还是在 bugs.sun.com
猜你喜欢
  • 2021-12-20
  • 1970-01-01
  • 2018-08-05
  • 2010-12-31
  • 2018-01-31
  • 2015-12-15
  • 2016-05-26
  • 1970-01-01
  • 2013-03-05
相关资源
最近更新 更多