Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java代码和.proto文件之间共享枚举值_Java_Enums_Protocol Buffers - Fatal编程技术网

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

如何在Java代码和.proto文件之间共享枚举值,java,enums,protocol-buffers,Java,Enums,Protocol Buffers,我有一门课要上。在该类中,其中一个字段是枚举(在它自己的类中)。我可以避免在.proto文件中定义相同的枚举值吗?或者我必须手动确保java代码中的枚举定义与.proto文件中的相同吗 java代码: public enum Location { UNDEF(0),HOME(1), WORK(2); ... } .proto文件对应代码: message Address{ enum location { UNDEF = 0; HOME = 1;

我有一门课要上。在该类中,其中一个字段是枚举(在它自己的类中)。我可以避免在.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;
...
}

保持这类同步的最佳解决方案通常是代码生成;确定哪一个定义是唯一的真理点,并从中创建其他定义。协议缓冲区具有诸如自动处理重复枚举值之类的漂亮功能。

可能重复@TharinduKumara:我的问题是3年前提出的。您设置为重复的问题只有1天。我是原版的阿斯基,不是复制品