如何告诉Java使用哪个StringEscapeUtils.escapeXML()?

时间:2008-12-16 15:10:43

标签: java xml jsp

我正在尝试使用org.apache.commons.lang中的StringEscapeUtils.escapeXML()函数...

该函数有两个版本,一个期望(Writer,String),另一个期望(String)....

http://commons.apache.org/lang/api/org/apache/commons/lang/StringEscapeUtils.html#escapeXml(java.lang.String)

我正在尝试使用只需要没有Writer的String参数的版本,但Java抱怨我没有给它一个Writer。

如何在我的程序中使用它,以便我不需要Writer?

String escXml = StringEscapeUtils.escapeXml(attr.get());
xml = xml.concat("<"+attr.getID()+">"+escXml+"</"+attr.getID()+">");

我也试过在字符串本身内联它。

xml = xml.concat("<"+attr.getID()+">"+StringEscapeUtils.escapeXml(attr.get())+"</"+attr.getID()+">");

这两次尝试都给了我关于它期待Writer的错误。任何人都可以帮我这个吗?

谢谢, 马特

3 个答案:

答案 0 :(得分:6)

错误消息告诉您正在将Object传递给方法,而不是String。

如果您确定Object是一个String,那么您首先需要将它转换为String。

如果这不起作用,请发布给您带来麻烦的实际代码。

答案 1 :(得分:2)

如果您在系统中安装了多个版本的java,则应该使用指定版本编译java类。

您应该使用这种方式编译文件。

javac -target -source

E.g H:&gt; javac -target 1.6 -source 1.6 Testt.java

所以你的目标和源版本告诉java,所以它会在运行时调用特定的版本类。

答案 2 :(得分:0)

编译器错误消息究竟是什么?

您是否可能使用不具有1参数方法的公共库的不同版本?