我正在尝试使用XStream将这样的XML读取到对象:

    <behavior id="id384781" class="ChangeAttributeAction" enabled="true">
      <attributes>
        <text id="name">Change Attribute</text>
        <text id="bundleName">ChangeAttribute.behavior</text>
        <text id="targetAttribute">game.devices.touches.touch1.y</text>
        <text id="RHS">
          <expression>
            <string>acos(x)</string>
          </expression>
        </text>
      </attributes>
    </behavior>


除了class="ChangeAttributeAction"部分,其他所有东西都按预期运行。

我在“行为”课程中:

@XStreamAlias("class")
@XStreamAsAttribute
String classAtt = "";


甚至很难为字段名起别名,它也会出现错误:

线程“ main” com.thoughtworks.xstream.converters.ConversionException中的异常:
ChangeAttributeAction:ChangeAttributeAction

----调试信息----

消息:ChangeAttributeAction

原因异常:com.thoughtworks.xstream.mapper.CannotResolveClassException

原因消息:ChangeAttributeAction

类别:projectmerger1。行为

required-type:projectmerger1。行为

转换器类型:com.thoughtworks.xstream.converters.reflection.ReflectionConverter

它曾经以某种方式工作,但现在却没有。我曾经以不同的方式对待对象,但是我无法找出自己在做什么以实现此目的。另外,根据我的研究-> link

最佳答案

我通过添加解决了它:

xstream.aliasSystemAttribute("", "class");


我不知道为什么它起作用,但是它起作用。不管怎么说,还是要谢谢你 :)

关于java - 使用保留关键字作为XML属性的Xstream和解决方法。 (“类”),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20735331/

10-11 17:19