Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.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_Eclipse - Fatal编程技术网

Java 由于方法使用无效,导致编译时错误

Java 由于方法使用无效,导致编译时错误,java,xml,eclipse,Java,Xml,Eclipse,我正在尝试使用YOURLS创建一个自定义URL缩短器。当我在YOURLS中使用内置API时,chrome中的XML文档就是这样的: <result> <url> <keyword>2</keyword> <url>http://www.bing.com</url> <title>http://www.bing.com</title> <date>2013-06-08 19:24:28<

我正在尝试使用YOURLS创建一个自定义URL缩短器。当我在YOURLS中使用内置API时,chrome中的XML文档就是这样的:

<result>
<url>
<keyword>2</keyword>
<url>http://www.bing.com</url>
<title>http://www.bing.com</title>
<date>2013-06-08 19:24:28</date>
<ip>127.0.0.1</ip>
</url>
<status>success</status>
<message>http://www.bing.com added to database</message>
<title>http://www.bing.com</title>
<shorturl>http://127.0.0.1/2</shorturl>
<statusCode>200</statusCode>
</result>

错误表示“XPathExpressions类型中的方法evaluate(Node,short,object)不适用于参数(Document,QName)”


有人知道如何解决这个问题吗?

这里的错误消息告诉您所需的一切:您的
evaluate
方法调用具有错误的签名。传递正确的参数(Node、short、Object),或者使用您喜欢的签名(即(Document、QName))重载方法。您必须从当前使用的参数中构建正确的参数,或者必须编写自己版本的
evaluate
方法。

我猜您有一个名为XPathExpression的类的导入,但它不是标准的
javax.xml.xpath.XPathExpression
。这也解释了为什么在代码中有强制转换:

XPathExpression expr = (XPathExpression) xpath.compile("shorturl");

如果导入的类是
javax.xml.xpath.XPathExpression
,则不需要它。编译器可能对这个简单的赋值不满意,IDE建议通过添加强制转换来“修复”它。但问题是您导入了错误的类。

确保标题、问题和标记支持并同意观察到的问题。创建“URL缩短器”可能是整个任务,但与问题无关。在本例中,问题是由于方法使用无效而导致的编译时错误-请查看XPathExpression.evaluate API-确保查看的是正确的API我同意这个答案/大纲。方法签名对于标准XPathExpression类型有效。
Object exprResult = expr.evaluate(doc, XPathConstants.NODESET);
XPathExpression expr = (XPathExpression) xpath.compile("shorturl");