Я пытаюсь отобразить POJO в сообщение protobuf, используя инфраструктуру mapstruct (1.3.0 final).Все работает замечательно, за исключением случаев, когда я сопоставляю свойство, являющееся списком, со свойством protobuf для повторяющихся строк.Я приложил свою проблему, используя небольшой пример ниже.
Я уже пытался просмотреть примеры и просмотреть комментарии здесь https://github.com/mapstruct/mapstruct/issues/1338. Но решение для меня не ясно.
java
message TestProto {
repeated string id = 1;
}
@Data//property has getter and setter
@NoArgsConstructor//No argument constructor
public class TestClass{
private List<String> id;
}
@Mapper(collectionMappingStrategy = CollectionMappingStrategy.ADDER_PREFERRED,
nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS)
public interface TestMapper {
TestMapper INSTANCE = Mappers.getMapper(TestMapper.class);
@Mapping(target = "idList", source = "id")
TestProto map(TestClass model)
}
Ошибка:
error: ProtocolStringList is abstract; cannot be instantiated
ProtocolStringList protocolStringList = new ProtocolStringList();
К сожалению, idList имеет тип ProtocolStringList, и структура становится немного запутанной.Есть какой-то трюк, который я пропускаю, или эта функция еще не реализована!