Поддерживает ли библиотека ModelMapper такие коллекции, как ArrayList или HashSet?
Этот вопрос не связан с AutoMapper.
Мой вопрос о ModelMapper в java, однако я не могу создать новый тег для modelmapper в качестве моей небольшой репутации. Извините за недоразумение.
Во всяком случае, мой вопрос в том, что коллекции modelmapper библиотеки поддерживают как arraylist или hashset? кажется, не поддерживает сбор коллекции.
Это правда?
Ответы
Ответ 1
Вы также можете напрямую сопоставить коллекции():
List<Person> persons = getPersons();
// Define the target type
java.lang.reflect.Type targetListType = new TypeToken<List<PersonDTO>>() {}.getType();
List<PersonDTO> personDTOs = mapper.map(persons, targetListType);
Документация по отображению обобщений.
Ответ 2
Вы также можете избежать использования TypeToken, если работаете с массивами:
List<PropertyDefinition<?>> list = ngbaFactory.convertStandardDefinitions(props);
ModelMapper modelMapper = new ModelMapper();
PropertyDefinitionDto[] asArray = modelMapper.map(list, PropertyDefinitionDto[].class);
Ответ 3
Да - поддерживается сопоставление Collection to Collection. Пример:
static class SList {
List<Integer> name;
}
static class DList {
List<String> name;
}
public void shouldMapListToListOfDifferentTypes() {
SList list = new SList();
list.name = Arrays.asList(Integer.valueOf(1), Integer.valueOf(2), Integer.valueOf(3));
DList d = modelMapper.map(list, DList.class);
assertEquals(d.name, Arrays.asList("1", "2", "3"));
}