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生の型を拡張するため、戻ります。代わりに使用する必要があります。これは を返します。IteratorIterator<XMLEvent>next()ObjectnextEvent()XMLEvent

于 2012-11-29T15:12:35.917 に答える