Reflection API для карт - PullRequest
1 голос
/ 04 июня 2019

Я хотел бы установить значение поля, которое имеет карту типов, используя api отражения для сообщения protobuf.

Я попытался использовать метод установки поля, как показано ниже. Это не похоже на работу. Я могу заставить его работать, используя предложение в Заполнение поля карты в Proto с помощью API отражения . Но это не кажется хорошим решением!

message OuterMessage {
  map<string, InnerMessage> mapInner = 1;
}
Map<String, InnerMessage> map = new HashMap<>();
map.put("R1", im1);
map.put("R2", im2);
OuterMessage.newBuilder().setField(fieldDescriptor, map);

Я получаю ошибку,

java.lang.ClassCastException: java.base/java.util.HashMap cannot be cast to java.base/java.util.List

Что понятно, когда я смотрю на реализацию. Но как еще мне установить карту?

...