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