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

标签 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;
...
}

最佳答案

保持此类同步的最佳解决方案通常是代码生成;确定您的哪个定义是单点真理,并根据它创建其他定义。 Protocol Buffer 有built-in support for Java code generation具有漂亮的功能,例如自动处理重复的枚举值。

关于java - 如何在 Java 代码和 .proto 文件之间共享 Enum 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19130965/

相关文章:

protocol-buffers - Protocol Buffer : How to use the --encode command on console

java - JSON GSON.fromJson Java 对象

swift - 关联枚举案例将类名

Swift 4 可在具有枚举属性的协议(protocol)中编码

ios - 如何使用 NS_ENUM

java - 两个Java进程之间的快速通信

JavaFx:TreeTableCell 边框 css

java - j2ee服务层自动化测试用例

java - 命令按钮不起作用

c# - 如何在 C# 中生成 .proto 文件或使用 'Code First gRPC'