Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java类强制转换异常_Java_Xml - Fatal编程技术网

java类强制转换异常

java类强制转换异常,java,xml,Java,Xml,我在将XML文档类型转换为文档对象时遇到问题。。 这是一段代码 Document doc=null; doc = (Document) parser.parse(sourceFile); 对于第2行,它抛出java类强制转换异常 如果没有类型转换,则错误显示为 Type mismatch: cannot convert from org.w3c.dom.Document to javax.swing.text.Document 我现在如何正确地进行打字?有什么建议吗?问题是在非限定名称中存在

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

Document doc=null;
doc = (Document) parser.parse(sourceFile);
对于第2行,它抛出java类强制转换异常

如果没有类型转换,则错误显示为

Type mismatch: cannot convert from org.w3c.dom.Document to javax.swing.text.Document

我现在如何正确地进行打字?有什么建议吗?

问题是在非限定名称中存在冲突

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

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

org.w3c.dom.Document doc = (org.w3c.dom.Document) parser.parse(sourceFile);
或者,您也可以具体地导入特定的
文档
,如下所示:

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

//...

Document doc = (Document) parser.parse(sourceFile);

这称为单类型导入声明(),可用于“隐藏”其他声明。

问题在于非限定名称中存在冲突

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

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

org.w3c.dom.Document doc = (org.w3c.dom.Document) parser.parse(sourceFile);
或者,您也可以具体地导入特定的
文档
,如下所示:

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

//...

Document doc = (Document) parser.parse(sourceFile);

这称为单类型导入声明(),可用于“隐藏”其他声明。

这两个接口具有相同的名称,但完全不相关。您不能在它们之间进行转换-这没有意义,因为它们代表完全不同的概念(好的,理论上,您可以有一个Swing组件来显示XML树并使用DOM文档作为其模型,但我认为这不是您所拥有的)


您可能想要做的是获取未解析的XML并调用您想要显示它的swing组件。

这两个接口具有相同的名称,但完全不相关。您不能在它们之间进行转换-这没有意义,因为它们代表完全不同的概念(好的,理论上,您可以有一个Swing组件来显示XML树并使用DOM文档作为其模型,但我认为这不是您所拥有的)


您可能要做的是获取未解析的XML并调用您希望显示它的swing组件。

您的应用程序是否为swing应用程序

您可能正在使用一个IDE,您可以自动让它在源文件中组织导入。IDE为
javax.swing.text.Document
添加了导入,而不是
org.w3c.dom.Document
。这是我在使用EclipseIDE时经常遇到的问题

必须执行的操作:从源代码文件顶部删除这一行:

import javax.swing.text.Document;
替换为:

import org.w3c.dom.Document;

您的应用程序是否为Swing应用程序

您可能正在使用一个IDE,您可以自动让它在源文件中组织导入。IDE为
javax.swing.text.Document
添加了导入,而不是
org.w3c.dom.Document
。这是我在使用EclipseIDE时经常遇到的问题

必须执行的操作:从源代码文件顶部删除这一行:

import javax.swing.text.Document;
替换为:

import org.w3c.dom.Document;

的确检查您的导入:)@shil:您能否限定您自己的陈述“您好,我在将XML文档类型转换为
文档
对象时遇到问题。”--您在这里谈论的是哪个
文档
?因为如果它是
javax.swing.text.Document
,那么不幸的是,不可以强制转换它。您必须通过库(而不是Java语言)进行更精细的转换。看Michael的答案。是的,是javax.swing.text.Document。。从micheal的回答我想不出我该怎么办。。您能详细说明一下吗?@shil:您想如何处理
swing.Document
?你能再详细说明一下吗?也许可以根据你的意图编辑这个问题。检查您的导入:)@shil:您能否限定您自己的陈述“您好,我在将XML文档类型转换为
文档
对象时遇到问题。”--您在这里谈论的是哪个
文档
?因为如果它是
javax.swing.text.Document
,那么不幸的是,不可以强制转换它。您必须通过库(而不是Java语言)进行更精细的转换。看Michael的答案。是的,是javax.swing.text.Document。。从micheal的回答我想不出我该怎么办。。您能详细说明一下吗?@shil:您想如何处理
swing.Document
?你能再详细说明一下吗?也许可以根据你的意图编辑这个问题。+1,这就是OP的意图。你可能想从这里接手。+1,这就是OP的意图。Jesper:
导入
并不是问题所在:OP实际上想以某种方式将w3c
文档
转换为Swing
文档。Ok。当然,这并不容易,因为
org.w3c.dom.Document
javax.swing.text.Document
是两件完全不同的事情,即使它们都被称为
文档
。Jesper:
导入
并不是问题所在:OP实际上希望以某种方式将w3c
文档
转换为Swing
文档。Ok。当然,这并不容易,因为
org.w3c.dom.Document
javax.swing.text.Document
是两个完全不同的东西,尽管它们都被称为
Document