如何在Java代码和.proto文件之间共享枚举值

时间:2013-10-02 06:13:52

标签: java enums protocol-buffers

我有一个班级,我希望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;
...
}

1 个答案:

答案 0 :(得分:1)

保持这种状态同步的最佳解决方案通常是代码生成;确定您的哪些定义是单点真相,并从中创建其他定义。协议缓冲区具有built-in support for Java code generation具有漂亮的功能,如自动处理重复的枚举值。