XStream更改常规别名约定

时间:2010-12-28 19:31:05

标签: java xstream

现在XStream使用class.getName()作为别名,但我想使用class.getSimpleName()。是否可以轻松配置,或者我是否必须手动配置所有类才能使用simpleName?

1 个答案:

答案 0 :(得分:3)

问题是,您的映射应该双向工作,因此您可以根据简单名称找到该类。由于这不是微不足道的,你应该自己做点什么。我基本上可以看到两种方法。

1。注册别名

既然你已经知道你将要使用哪些类(因为如果你不这样做,你将无法找到带有简单名称的类),你可以为所有类注册别名像

xtream.register("Simple", net.difficult.package.name.Simple.class);

2。创建自定义映射器

如果您不想出于某种原因注册别名,可以将映射器包装在您自己的映射器中(例如,参见AbstractXmlFriendlyMapper的基础),但是,您仍然会需要一些方法来找出哪个类属于哪个短名称。