为什么这不适用于推土机?我必须做些什么才能让它发生?我们有大量的枚举,有时我们只需要在它们之间进行映射。我们有什么方法可以配置推土机来做到这一点而不编写自定义的东西?
enum EnumOne{ TEST1, TEST2 }
enum EnumTwo{ TEST1, TEST2 }
Mapper dozerMapper;
dozerMapper.map(EnumOne.TEST1, EnumTwo.class);
它不起作用,因为 Dozer 依赖于公共构造函数的存在,这对于枚举是非法的。当您尝试映射它们时,您可以从异常中推断出这一点:
Exception in thread "main" org.dozer.MappingException:
java.lang.NoSuchMethodException: DestinationEnum.< init >()
它正在寻找一个不存在的构造函数。
除了 black666 说的那样,没有办法绕过它,它是更大 POJO 的一部分。这就是它在文档中显示的方式。