现在XStream使用class.getName()作为别名,但我想使用class.getSimpleName()。是否可以轻松配置,或者我是否必须手动配置所有类才能使用simpleName?
答案 0 :(得分:3)
问题是,您的映射应该双向工作,因此您可以根据简单名称找到该类。由于这不是微不足道的,你应该自己做点什么。我基本上可以看到两种方法。
既然你已经知道你将要使用哪些类(因为如果你不这样做,你将无法找到带有简单名称的类),你可以为所有类注册别名像
xtream.register("Simple", net.difficult.package.name.Simple.class);
如果您不想出于某种原因注册别名,可以将映射器包装在您自己的映射器中(例如,参见AbstractXmlFriendlyMapper的基础),但是,您仍然会需要一些方法来找出哪个类属于哪个短名称。