gpt4 book ai didi

java - 检查 protobuf 消息 - 如何按名称获取字段值?

转载 作者:太空狗 更新时间:2023-10-29 23:04:12 25 4
gpt4 key购买 nike

我似乎无法在不显式调用其 getter 的情况下找到验证 protobuf 消息中字段值的方法。

我看到周围的示例利用 Descriptors.FieldDescriptor 实例到达消息映射内部,但它们要么基于迭代器,要么由字段编号驱动。

一旦我有了 map :

Map<Descriptors.FieldDescriptor, Object> allFields = myMsg.getAllFields();

如何获取字段 "fieldXyz" 的值?

我知道我可以使用 myMsg.getFieldXyz(),但这不能以系统的方式使用。

如果无法通过名称访问字段值,我想知道这种选择背后的基本原理是什么。我可能还需要了解 protobuf 的“哲学”:-)

最佳答案

我不确定您是否在寻找 Descriptors#findFieldByName(name)。您可以尝试以下操作:

FieldDescriptor fieldDescriptor = message.getDescriptorForType().findFieldByName("fieldXyz");
Object value = message.getField(fieldDescriptor);

关于java - 检查 protobuf 消息 - 如何按名称获取字段值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38071689/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com