1

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

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

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

这就是为什么我需要对该内部类进行公共访问。

所以,如果有人知道给私有内部类起别名的技巧,我真的很想听听。

4

2 回答 2

1

您可以创建一个如下所示的类并将您的引用传递xstreamInstance给该alias方法。

public class Parent {
    public void alias(XStream x) {
        x.alias("Kiddie", Parent.Child.class);
    }

    private class Child {

    }
}
于 2010-02-04T03:57:31.750 回答
0

为别名使用注释怎么样?

public class Parent {
    @XStreamAlias("kiddie")
    private class Child {

    }
}

编辑:唉,在要求解析父类时,XStream 不支持解析嵌套类的注释。

于 2010-02-23T23:08:43.443 回答