如何为私有内部类创建别名(使用XStream)?

时间:2010-02-02 20:45:25

标签: java alias xstream

我正在为长类名创建别名......它工作得非常好,但其中一个序列化类是私有内部类。除了公开之外,我想不出为它创建别名的方法。我不喜欢这个解决方案,因为它首先不应该是公开的。但是,因为为它创建别名,就可以更改包名和类名,而无需修改XML文件(因为第一个标记是完全限定的类名)。

这就是我创建别名的方法:

xstreamInstance.alias("ClassAlias", OuterClass.InnerClassToAlias.class);

这就是我需要公开访问该内部类的原因。

所以,如果有人知道一个私法内部别名的伎俩,我真的很想听听它。

2 个答案:

答案 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不支持解析嵌套类的注释。