Кажется, я не могу найти способ проверить значение поля внутри сообщения protobuf без явного вызова его получателя.
Я вижу примеры вокруг, которые используют экземпляры Descriptors.FieldDescriptor для доступа к карте сообщений, но они либо основаны на итераторе, либо управляются номером поля.
Как только у меня есть карта:
Map<Descriptors.FieldDescriptor, Object> allFields = myMsg.getAllFields();
как я могу получить значение поля "fieldXyz"?
Я знаю, что могу использовать myMsg.getFieldXyz(), но это невозможно использовать систематически.
Если нет способа получить доступ к значениям полей по их именам, я хотел бы знать, в чем причина этого выбора. Возможно, мне еще нужно понять философию протобуфа :-)