论坛首页 Java企业应用论坛

关于JDK1.6中StAX的实现的一些疑问

浏览 2603 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-10-07  
因为我在写一个小东西的时候要用到XML,从昨天晚上开始学习了一下JDK1.6中加入的StAX,主是通过看IBM developerworks上的几篇文章和java文档.发现这个东西确实不错,很容易上手,使用起来也很简单.不过在看JAVA文档的时候发现了几个让我很疑惑的地方:

StAX中没有使用泛型
比如 javax.xml.stream.XMLEventReader类实现了java.util.iterator接口.但这里它并没有使用泛型实现java.util.iterator<xmlevent>,虽然XMLEventReader.next()返回的就是一个XMLEvent.
而且看起来有点多余的在XMLEventReader中添加了一个
[quote]
</xmlevent>

nextEvent

XMLEvent nextEvent()
throws XMLStreamException
Get the next XMLEvent

Throws:
XMLStreamException - if there is an error with the underlying XML.
NoSuchElementException - iteration has no more elements.
See Also:
XMLEvent
[/quote]
方法,事实上这个方法的功能与next()方法的完全一样.
同样,javax.xml.stream.events.StartElement的getAttributes()方法返回的也不是一个泛型iterator

StAX中没有使用enum,而是使用了一个常量接口XMLStreamConstants

不知道是不是我的理解有误,还是这样设计有其它考虑?

附:介绍StAX的几篇文章:
http://www.ibm.com/developerworks/cn/xml/x-stax2.html
http://www.ibm.com/developerworks/cn/xml/x-stax1.html
   发表时间:2007-10-07  
对于为什么添加了一个nextEvent似乎可以这样解释:
因为:
XMLEvent nextEvent()
                   throws XMLStreamException
而Iterator接口中的
next

E next()
    Throws:
        NoSuchElementException - iteration has no more elements.

所以加一个nextEvent是可以理解的,
但还是不晓得为什么不实现Iterator<XMLEvent>接口?
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics