【发布时间】:2011-03-08 17:23:36
【问题描述】:
我正在尝试使用 Dozer 自动从原始类相互映射。最后,代码可能会变成这样。
Boolean resultBoolean = mapper.map("true", Boolean.class);
虽然 Dozer 在 bean 中确实支持将 String 映射到 Boolean,但似乎直接映射到 Boolean 会产生以下异常。
org.dozer.MappingException: java.lang.NoSuchMethodException: java.lang.Boolean.<init>()
at org.dozer.util.MappingUtils.throwMappingException(MappingUtils.java:88)
at org.dozer.factory.ConstructionStrategies$ByConstructor.newInstance(ConstructionStrategies.java:261)
at org.dozer.factory.ConstructionStrategies$ByConstructor.create(ConstructionStrategies.java:245)
at org.dozer.factory.DestBeanCreator.create(DestBeanCreator.java:65)
at org.dozer.MappingProcessor.map(MappingProcessor.java:178)
at org.dozer.MappingProcessor.map(MappingProcessor.java:125)
at org.dozer.MappingProcessor.map(MappingProcessor.java:120)
at org.dozer.DozerBeanMapper.map(DozerBeanMapper.java:111)
...
Caused by: java.lang.NoSuchMethodException: java.lang.Boolean.<init>()
at java.lang.Class.getConstructor0(Class.java:2706)
at java.lang.Class.getDeclaredConstructor(Class.java:1985)
at org.dozer.factory.ConstructionStrategies$ByConstructor.newInstance(ConstructionStrategies.java:257)
... 32 more
很明显,Dozer 正在尝试实例化布尔值本身。我可以创建一个客户DozerConverter 将布尔值转换为字符串,但我不想重新实现 Dozer 已有的代码。有没有办法让 Dozer 直接映射到原始类型?
【问题讨论】:
标签: java automapping dozer