我有一个动态的
我的目标是将所有字段的值合并到一个字符串中,例如,如果消息包含2个字段:
我的想法是:因为我不知道这个消息包含了哪些字段,所以我需要遍历这个消息来获取所有字段的名称、类型(可以通过
protobuf
消息,但我不知道这个消息包含了哪些字段。我的目标是将所有字段的值合并到一个字符串中,例如,如果消息包含2个字段:
string name = "Jack";
和int age = 12;
,那么我想得到的最终结果是"name:Jack, age:12"
。我的想法是:因为我不知道这个消息包含了哪些字段,所以我需要遍历这个消息来获取所有字段的名称、类型(可以通过
Descriptor
访问),然后获取每个字段的值。这是最令人烦恼的部分,因为我需要写很长的代码来处理各种类型的字段。switch (type) {
case TYPE_UINT32:
//call get_uint32
break;
case TYPE_UINT64:
//call get_uint64
break;
......
}
我想知道是否有其他更好的方法来完成这个任务?