我有以下.proto文件:
enum Enum1{
X=0;
Y=1;
}
message SomeClass{
required Enum1 enum1=1;
required Enum2 enum2=2;
}
enum Enum2{
X=0;
Z=1;
}
当我尝试使用protoc对其进行编译时,出现以下错误:
我有什么办法可以克服这个问题!
最佳答案
您可以在另一个消息中包含枚举,这样可见性就不会冲突。
范例:
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;
}