Я столкнулся с очень странным поведением в Java. У меня есть два разных класса, у которых нет иерархического соединения: Шаблон класса (иерархия типов - Object -> A -> B -> Template) и класс TemplateDto (Object -> TemplateDto).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, который ударяет меня по голове.
Я попытался очистить мой кота, maven clean install, но это все еще происходит.
Любые идеи?
Основываясь на своем учебнике, вы, похоже, не используете эту функцию правильно. http://modelmapper.org/getting-started/ –
Я некоторое время использую mapperper, у меня никогда не было проблем с этим типом сопоставления (есть много способов сопоставления). Во всяком случае, мой вопрос заключается не в использовании modelmapper, а о странном поведении типа Generic, который изменяется во время выполнения. – Eyal