推土机枚举枚举映射

时间:2013-11-11 09:50:40

标签: java dozer

为什么这不适用于Dozer?要做到这一点我需要做些什么?我们有很多枚举词,有时候我们只需要在它们之间进行映射。我们可以用任何方式配置推土机来完成这个而不用编写自定义的东西吗?

enum EnumOne{ TEST1, TEST2 }
enum EnumTwo{ TEST1, TEST2 }

Mapper dozerMapper;

dozerMapper.map(EnumOne.TEST1, EnumTwo.class);

1 个答案:

答案 0 :(得分:0)

它不起作用,因为Dozer依赖于公共构造函数的存在,这对于枚举是非法的。当您尝试映射它们时,可以从异常中推断出这一点:

Exception in thread "main" org.dozer.MappingException: 
java.lang.NoSuchMethodException: DestinationEnum.< init >()

它正在寻找一个不存在的构造函数。

除了black666说它已经成为更大的POJO的一部分之外,没有办法解决它。这就是documentation中显示的方式。