0

我有一个我希望 protobuf 的课程。在该类中,其中一个字段是枚举(在它自己的类中)。我可以避免在我的 .proto 文件中定义相同的枚举值吗?还是我必须手动确保 java 代码中的枚举定义与 .proto 文件中的相同?

爪哇代码:

public enum Location {
UNDEF(0),HOME(1), WORK(2);
...
}

.proto文件对应代码:

message Address{
    enum location {
        UNDEF = 0;
        HOME = 1;
        WORK = 2;
    }
   optional location addressLocation;
...
}
4

1 回答 1

1

保持这种同步的最佳解决方案通常是代码生成。确定你的哪些定义是单点真理,并从中创建其他定义。Protocol Buffers内置了对 Java 代码生成的支持,具有一些漂亮的特性,比如自动处理重复的枚举值。

于 2013-10-02T06:17:02.753 回答