【发布时间】:2016-08-25 23:07:02
【问题描述】:
现在 XStream 使用 class.getName() 作为别名,但我想使用 class.getSimpleName()。是否可以轻松配置它,还是我必须手动配置所有类才能使用 simpleName?
【问题讨论】:
现在 XStream 使用 class.getName() 作为别名,但我想使用 class.getSimpleName()。是否可以轻松配置它,还是我必须手动配置所有类才能使用 simpleName?
【问题讨论】:
问题是,您的映射应该双向工作,因此您可以根据简单名称找到类。既然这不是微不足道的,你应该自己做点什么。我可以看到基本上有两种方法可以做到这一点。
由于您已经知道您将使用哪些类(因为如果您不知道,您将无法找到带有简单名称的类),您可以为所有类注册别名喜欢
xtream.register("Simple", net.difficult.package.name.Simple.class);
如果您出于某种原因不想注册别名,您可以将映射器包装在您自己的映射器中(例如,参见AbstractXmlFriendlyMapper 了解此基础),但您仍然需要一些找出哪个类属于哪个短名称的方法。
【讨论】: