Java 推土机枚举到枚举映射

Java 推土机枚举到枚举映射,java,dozer,Java,Dozer,为什么这不适用于推土机?我要怎么做才能让它发生?我们有无数个枚举,有时我们只需要在它们之间映射。我们是否可以只配置推土机,而不编写自定义内容 enum EnumOne{ TEST1, TEST2 } enum EnumTwo{ TEST1, TEST2 } Mapper dozerMapper; dozerMapper.map(EnumOne.TEST1, EnumTwo.class); 它不起作用,因为Dozer依赖于公共构造函数的存在,这对于枚举是非法的。当您尝试映射它们时,可以从异常

为什么这不适用于推土机?我要怎么做才能让它发生?我们有无数个枚举,有时我们只需要在它们之间映射。我们是否可以只配置推土机,而不编写自定义内容

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 >()
线程“main”org.dozer.MappingException中的异常: java.lang.NoSuchMethodException:DestinationNum.() 它正在寻找一个不存在的构造函数


除了black666所说的,它已经成为一个更大的POJO的一部分之外,没有别的办法了。图中就是这样显示的。

你解决了吗?如果是,你能提供你的解决方案吗?我遇到了同样的问题。当枚举作为更大的POJO的一部分映射时,它们映射得很好,但是如果我只想单独映射枚举,它就不起作用了。不,最后为枚举编写了一个自定义映射程序。我们的映射器内部有一个dozer映射器,现在它们派生自一个可以按名称映射枚举的基类。