Ошибка MapStruct Kotlin/JVM(v1.5.10): Поток возвращаемого типа является абстрактным классом или интерфейсом

#java #kotlin #mapstruct #kotlin-coroutines

Вопрос:

Мой проект успешно использует MapStruct, когда он не включает потоки потоков или потоков. Когда я пытаюсь создать сопоставитель с потоком или Потоком, я получаю сообщение об ошибке: «Ошибка: Поток возвращаемого типа является абстрактным классом или интерфейсом». Поскольку поток и поток являются интерфейсами, есть ли способ по-прежнему использовать MapStruct или мне нужно свернуть свой собственный картограф в этом случае использования?

Спасибо за ваши комментарии и время

Ответ №1:

Я не знаю, из чего вы хотите создать поток Котлина или Поток реактора. Если это из другого потока или потока, то вам придется сделать это частично вручную

напр.

 @Mapper
public interface CustomerMapper {

    default Flow<CustomerDto> map(Flow<Customer> customers) {
        return customers.map(this::map);
    }

    CustomerDto map(Customer customer);

}
 

То же самое было бы и для react. Если вы заинтересованы в том, чтобы MapStruct поддерживал это из коробки, я бы предложил запросить функцию в отслеживателе проблем MapStruct

Комментарии:

1. Привет, Филип, спасибо тебе за твой ответ. В качестве обходного пути я реализовал аналогичную функцию, не связанную с картой. Я забыл, что мы можем определить этот пользовательский обработчик внутри картографа. Я перенесу свое решение в картограф. Отличная идея, Филип! Спасибо!