需要说明的是:我在C++编码方面是一个相当业余的人。
目前,我正在使用Protobuff来序列化c++和java模型之间的数据并进行数据交换。由于两个模型对相同的科学术语使用不同的变量名称(对于日常河流排水,c++模型使用dailyRiverDrianage,java使用dailyRdrainage)。我在protoc中使用了一个新的变量来定义一个共享的变量。
我的问题是,哪种方法是连接两者的最佳方式(protoc变量和模型变量)。无法在Java或C++中更改变量名
发布于 2018-07-30 01:35:19
基本上,你需要一个中间层来保持到原型文件的一致映射。在Java端执行此操作,因为您对该语言更熟悉。该中间层将从Java上的任何东西映射到具有不同名称的Java变量。
编辑:
C++端
message Person {
required string name = 1;
required int32 id = 2;
optional string email = 3;
}Java端
message Individual {
required string fullName = 1;
required int32 personal_id = 2;
optional string personal_email = 3;
}将数据从Java端发送到C++端。在Java端生成相同的Person消息单元,并反序列化消息,获取数据并复制(map)。
name -> fullName
id -> personal_id
email -> personal_email这就是您的解码器/转换器单元,您可以在接口更改时对其进行修补。
https://stackoverflow.com/questions/51481206
复制相似问题