2012-11-29 61 views
3

爲什麼XMLEventReader會擴展原始Iterator?由於XMLEventReader.next()返回Object,我們必須使用顯式強制轉換。它不應該是這樣的:爲什麼javax.xml.stream.XMLEventReader會擴展原始Iterator而不是Iterator <XmlEvent>?

public interface XMLEventReader extends Iterator<XmlEvent> 
+0

我猜測它是在泛型之前添加的,但XMLEventReader似乎已經[在Java 5中添加](http://docs.oracle.com/javaee/5/api/javax/xml/stream/XMLEventReader.html )(儘管[此頁面說它是在Java 6中添加的](http://docs.oracle.com/javase/7/docs/api/javax/xml/stream/XMLEventReader.html))。 –

+0

Hashtable自JDK1.0開始,但自1.5開始進行基因化。現在它是Hashtable

+0

@BrendanLong:你的第一個鏈接是ee5 api,它被添加到版本6中的se,但標準更老。 –

回答

4

StAX的API是在jsr 173定義,該規範在JDK 5,介紹了泛型的2004年3月得到了最終版本的地位,在2004年9月才被釋放jsr 173的開發要早得多,所以它的目標是早期的java版本。

應該可以在api的進一步版本中引入泛型,但我想專家組沒有人加入任務。

請注意,XMLEventReader也有一個nextEvent方法,不需要鑄造。

+0

我注意到,沒有人甚至提出這些更改,既不在您的jsr 173鏈接也不在http://bugs.sun.com/上 – durron597

相關問題