Mapstruct не может найти общий тип атрибута. Давайте возьмем пример, чтобы прояснить, что я пытаюсь сделать.MapStruct - Как указать общий тип атрибута?
Учитывая следующие DTOS:
class ListForm<T> {
private Collection<T> adds;
private Collection<T> changes;
private Collection<T> deletes;
}
class Person {
private String name;
}
class PersonDto {
private String name;
}
Я пытаюсь реализовать следующий картографа:
@Mapper
public interface OccupantMapper {
ListForm<Person> test(ListForm<PersonDto> person);
Collection<Person> toPersons (Collection<PersonDto> persons);
}
Но вот часть того, что mapstruct генерирует:
ListForm<Person> listForm= new ListForm<Person>();
if (occ.getAjouts() != null) {
if (listForm.getAjouts() != null) {
// problem here, mapstruct can't find the type of the attribute
Collection<T> targetCollection = person.getAdds();
if (targetCollection != null) {
listForm.getAjouts().addAll(targetCollection);
}
}
}
Как вам можно увидеть в коде ниже, mapstruct не может найти тип целевой коллекции. И он не преобразует список PersonDto в список Person. Вот что должен создать mapstruct.
Collection<Occupant> targetCollection = toPersons(person.getAdds());
Можете ли вы сказать мне, если это ошибка? Если есть проблема? Или я должен делать это по-другому? Thks,