Xstream toXML(Object, Writer) 的标签创建问题

Xstream tag creation problems with toXML(Object, Writer)

我正在尝试创建一个简单的 XML 字符串格式,但我似乎无法让 Eclipse 一起玩,因为它一直给我这个代码的 "cannot convert from void to String" 错误警告(我跟着这个 .) 这是我的示例代码:

final Xstream xstream = new Xstream();
final Person myPerson = new Person();
Writer writer = new StringWriter();
try {
    writer.write("<?xml version=\"1.0\"?>");
} catch (final IOException e) {
    e.printStackTrace();
    System.exit(0); //just for testing sakes
}

final String xmlResponse = xstream.toXML(myPerson, writer); // the line that has the error in Eclipse

对于 "Maybe you aren't actually making an object for myPerson," 的明显答案,我对 Person 的代码是:

public class Person{
    public final String name;
    Person(){
        name = "EmptyName";
    }
}

我已经搜索了文档,但没有发现有关此错误的任何帮助。但是,Xstream 的来源中有方法 void toxml(Xstream, Object, Writer),这可能是问题所在。另一件事可能是转义字符串中的引号也可能是问题所在,但我没有办法解决这个问题。另外,删除引号和转义符并不能解决问题。

如能帮助解决此问题,我们将不胜感激。 Xstream 版本 1.4.10 以防万一。

如果您查看 toXML 的文档,它 returns void,意味着没有 return 类型,因此您会在 Eclipse 中看到该错误。

你可以简单地写:

xstream.toXML( myPerson, writer );

删除String xmlResponse =

然后您可以使用 :

将 xml 分配给 xmlResponse

final String xmlResponse = ( (StringWriter)writer ).getBuffer().toString();