我有一个班级,我希望protobuf。在该类中,其中一个字段是一个枚举(在它自己的类中)。我可以避免在.proto文件中定义相同的枚举值吗?或者我是否必须手动确保java代码中的枚举定义与.proto文件中的枚举定义相同?
java代码:
public enum Location {
UNDEF(0),HOME(1), WORK(2);
...
}
.proto文件对应的代码:
message Address{
enum location {
UNDEF = 0;
HOME = 1;
WORK = 2;
}
optional location addressLocation;
...
}
答案 0 :(得分:1)
保持这种状态同步的最佳解决方案通常是代码生成;确定您的哪些定义是单点真相,并从中创建其他定义。协议缓冲区具有built-in support for Java code generation具有漂亮的功能,如自动处理重复的枚举值。