我正在尝试使用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/