Подтвердить что ты не робот

Поддерживает ли библиотека ModelMapper такие коллекции, как ArrayList или HashSet?

Этот вопрос не связан с AutoMapper. Мой вопрос о ModelMapper в java, однако я не могу создать новый тег для modelmapper в качестве моей небольшой репутации. Извините за недоразумение.

Во всяком случае, мой вопрос в том, что коллекции modelmapper библиотеки поддерживают как arraylist или hashset? кажется, не поддерживает сбор коллекции. Это правда?

4b9b3361

Ответ 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"));
}