【发布时间】:2012-04-09 11:14:39
【问题描述】:
我的 bean 具有可以包含不同类型的对象。现在,当我创建 XML 时,它会将类属性添加到序列化对象。我想更改它,例如类简单名称。
Java 示例:
public class MyParentClass {
private Object childObjectAttribute; // Can be any instance of any interface ...
// Getters & setters etc..
XStream 初始化:
public XStream getXStream()
{
XStream xstream = new XStream();
Class<?>[] c = { MyInterfaceImpl.class }; // MyInterfaceImpl has of course @XStreamAlias("MyInterface")
xstream.processAnnotations(c);
xstream.alias(MyInterface.class.getSimpleName(), MyInterface.class, MyInterfaceImpl.class);
return xstream;
}
示例 XML:
<myParentClass>
<childObjectAttribute class="com.example.PossibleClass"/>
</myParentClass>
我想将 com.example.PossibleClass 更改为 PossibleClass 或其他内容。这可能吗?
【问题讨论】:
-
我唯一能说的就是
PossibleClass没有包名,当多个包包含该名称的类时会导致反序列化问题。为此,可能是不可能的。