gpt4 book ai didi

java - Protocol Buffer : Enum issue

转载 作者:搜寻专家 更新时间:2023-10-30 20:02:03 25 4
gpt4 key购买 nike

我有以下 .proto 文件:

enum Enum1{
X=0;
Y=1;
}
message SomeClass{
required Enum1 enum1=1;
required Enum2 enum2=2;
}
enum Enum2{
X=0;
Z=1;
}

当我尝试使用 protoc 编译它时,出现以下错误:

proto.proto:19:5: "X" is already defined proto.proto:19:5: Note that enum values use C++ scoping rules, meaning that enum values are siblings of their type, not children of it. Therefore, "X" must be unique , not just within "Enum2".

我有什么办法可以解决这个问题!

最佳答案

您可以将您的枚举包含在另一条消息中,这样可见性就不会发生冲突。

例子:

message Enum1{
enum Enum{
X=0;
Y=1;
}
}

message Enum2{
enum Enum{
X=0;
Y=1;
}
}

message SomeClass{
required Enum1.Enum enum1=1;
required Enum2.Enum enum2=0;
}

您还可以在您的枚举值前加上一些前缀。如果您不更改值名称后的数字,它应该与您的旧版本保持兼容:例如:

enum Enum1{
E1_X=0;
E1_Y=1;
}
enum Enum2{
E2_X=0;
E2_Z=1;
}
message SomeClass{
required Enum1 enum1=1;
required Enum2 enum2=2;
}

关于java - Protocol Buffer : Enum issue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7952447/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com