我在Java中遇到了一个非常奇怪的行为。
我有两个不具有层次关系的不同类:
Class Template (类型层次结构为Object -> A -> B -> Template),和class TemplateDto (Object -> TemplateDto)。
我使用ModelMapper (org.modelmapper.ModelMapper) 在两个类之间进行映射(由于字段名称相同,因此使用默认映射)。
以下是代码:
我使用ModelMapper (org.modelmapper.ModelMapper) 在两个类之间进行映射(由于字段名称相同,因此使用默认映射)。
以下是代码:
List<Template> templates = cvService.getTemplates();
List<TemplateDto> resultDtos = new ArrayList<TemplateDto>();
modelMapper.map(templates,resultDtos);
TemplateDto example = resultDtos.get(0);
最后一行抛出异常:
java.lang.ClassCastException: com.vs.framework.domain.cv.Template cannot be cast to com.vs.framework.dto.cv.TemplateDto
这很奇怪。当我调试这个部分时,我发现在映射之后,resultDtos是List类型的列表,而不是我的预期类型List,这让我感到困惑。
我已经尝试过清理我的Tomcat,运行maven clean install,但问题仍然存在。
有任何想法吗?