我正在将对象图从一个表示映射到另一个表示(外部到内部)。我有以下两个类(为了便于阅读,省略了其他属性,getter和setter):
class CExt {
private Map<Kext, Vext> dataMap;
}
class CInt {
private Map<KInt, VInt> dataMap;
}
如果我有Kext或Vext类型的简单属性,它们会正确映射。如果我有一个List,它也会正确地映射到List。
我使用了类型提示,以便正确映射值。但是关键映射没有这样的提示。因此dozer对Map失败了:它确实映射了它,但没有将键映射到Kint
类型。我得到Map<KExt, VInt>
的结果。
以下是调试器变量视图显示的内容:问题以红色标记。
你在这里看到真实的类型。我想要的是成为CaseDataType
的关键(顺便说一句,这适用于dataType
属性)。 CaseDataTypeExt
和CaseDataType
都是枚举。
如何深度映射我的地图密钥?
(如果确实需要,我可以修改Ext类,但是不可能更改Int类。)