java classcast异常

shi*_*hil 1 java xml

我在将XML文档类型转换为Document对象时遇到了问题.这是一段代码

Document doc=null;
doc = (Document) parser.parse(sourceFile);
Run Code Online (Sandbox Code Playgroud)

对于这一行2,它抛出java classcast异常..

没有类型转换它显示错误

Type mismatch: cannot convert from org.w3c.dom.Document to javax.swing.text.Document
Run Code Online (Sandbox Code Playgroud)

我现在如何正确地进行类型转换?有什么建议??

pol*_*nts 6

问题是在不合格的名称中存在冲突.

也就是说,作为您的import语句的结果,非限定名称Document引用javax.swing.text.Document,但您确实需要org.w3c.dom.Document(这是解析器返回的类型).

您可以使用完全限定名称来解决此问题:

org.w3c.dom.Document doc = (org.w3c.dom.Document) parser.parse(sourceFile);
Run Code Online (Sandbox Code Playgroud)

或者,您还可以具体import具体Document如下:

import javax.swing.text.*;
import org.w3c.dom.*;
import org.w3c.dom.Document;

//...

Document doc = (Document) parser.parse(sourceFile);
Run Code Online (Sandbox Code Playgroud)

这称为单类型导入声明(JLS 7.5.1),它可用于"遮蔽"其他声明.