Я хотел бы установить значение поля, которое имеет карту типов, используя 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
Что понятно, когда я смотрю на реализацию. Но как еще мне установить карту?