小编典典

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

java

我有一堂课要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;
...
}

阅读 628

收藏
2020-11-30

共1个答案

小编典典

保持此类同步的最佳解决方案通常是代码生成。确定您的定义中的哪一个是真相,然后从中创建其他定义。协议缓冲区内置了对Java代码生成的内置支持,并具有诸如自动处理重复的枚举值之类的漂亮功能。

2020-11-30