任何人都可以解释为什么这段代码无法编译:
import java.io.FileInputStream;
import javax.xml.stream.XMLEventReader;
import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.events.XMLEvent;
public class Test {
public static void main(String[] args) throws Exception {
XMLEventReader xr = XMLInputFactory.newInstance().createXMLEventReader(new FileInputStream("test.xml"));
XMLEvent e = xr.next();
}
}
输出
Test.java:10: error: incompatible types
XMLEvent e = xr.next();
^
required: XMLEvent
found: Object
1 error
根据API XMLEventReader.next()返回XMLEvent。
注意:我使用了javac 1.7.0_03
答案 0 :(得分:2)
接口XMLEventReader
扩展了原始类型Iterator
,而不是参数化类型Iterator<XMLEvent>
,因此next()
将返回Object
。您应该使用nextEvent()
代替XMLEvent
。