我正在为长类名创建别名......它工作得非常好,但其中一个序列化类是私有内部类。除了公开之外,我想不出为它创建别名的方法。我不喜欢这个解决方案,因为它首先不应该是公开的。但是,因为为它创建别名,就可以更改包名和类名,而无需修改XML文件(因为第一个标记是完全限定的类名)。
这就是我创建别名的方法:
xstreamInstance.alias("ClassAlias", OuterClass.InnerClassToAlias.class);
这就是我需要公开访问该内部类的原因。
所以,如果有人知道一个私法内部别名的伎俩,我真的很想听听它。
答案 0 :(得分:1)
您可以创建类似以下的类,并将对xstreamInstance
的引用传递给alias
方法。
public class Parent {
public void alias(XStream x) {
x.alias("Kiddie", Parent.Child.class);
}
private class Child {
}
}
答案 1 :(得分:0)
如何为别名使用注释?
public class Parent {
@XStreamAlias("kiddie")
private class Child {
}
}
编辑:唉,当要求解析父类时,XStream不支持解析嵌套类的注释。