В документации MapStruct есть следующие сведения о разумных значениях по умолчанию, выбранных для NullValueMappingStrategy.RETURN_DEFAULT:
Отображение бина: будет возвращен «пустой» целевой бин с
за исключением констант и выражений, они будут заполнены при
нет.
Примитивы: будут возвращены значения по умолчанию для примитивов, например,
false для логического или 0 для int.
Итерируемые / Массивы: будет возвращен пустой итерируемый.
Карты: будет возвращена пустая карта.
Проблема в том, что мы хотим иметь возможность указать на уровне @Mapper, что, например, Iterables должен иметь NullValueMappingStrategy.RETURN_DEFAULT, но не примитивы. Причина этого в том, что пустая итерация является разумным значением по умолчанию для нашего варианта использования, но 0 не является разумным значением по умолчанию для int. Мы бы предпочли не иметь, например, объявлять:
@IterableMapping(nullValueMappingStrategy = NullValueMappingStrategy.RETURN_DEFAULT)
для каждого повторяемого отображения, которое мы отображаем.
Предоставляет ли MapStruct чистый способ сделать это, которого я не нахожу в документации?