0

谁能解释一下为什么这段代码不能编译:

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

4

1 回答 1

2

该接口XMLEventReader扩展了原始类型Iterator,而不是参数化类型Iterator<XMLEvent>,因此next()将返回Object。您应该改用nextEvent()它,它确实 return XMLEvent

于 2012-11-29T15:12:35.917 回答