0
任何人都可以解釋我爲什麼這個代碼不編譯:爲什麼在編譯期間無法將javax.xml.stream.XMLEventReader.next()轉換爲XMLEvent?
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
您可以將一個'Object'強制轉換爲'XMLEvent' - 但您需要真正做到這一點,編寫一個強制轉換表達式。在這裏,你不是在投射,只是想做一個非法的任務。 –
,因爲你需要'nextEvent()'方法,'next()'來自Iterator,它是XMLEventReader的父類 – hoaz