Отображение из POJO в protobuf для List <String> - PullRequest
0 голосов
/ 03 июля 2019

Я пытаюсь отобразить 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, и структура становится немного запутанной.Есть какой-то трюк, который я пропускаю, или эта функция еще не реализована!

...