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

我有一堂课要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代码生成的内置支持,并具有诸如自动处理重复的枚举值之类的漂亮功能。

以上是 如何在Java代码和.proto文件之间共享Enum值 的全部内容, 来源链接: utcz.com/qa/416039.html

回到顶部