2

我是 protobuf 用法的新手。

我打算在其中编写带有枚举的protobuf def。

有什么方法可以在其中提供 id、value 和描述。

编译后我想生成的枚举应该和下面的例子一样

enum Sample{
  W(0, "W"), P(0, "P"), C(0, "C"), B(0, "B")
  private final int id;
  private final String value;

  private Status(int id, String value) {
    this.id= id;
    this.value = value;
  }
}

非常感谢任何帮助。

4

1 回答 1

4

在您的示例中无法准确生成 Java 枚举,但您可以使用“自定义选项”将任意注释添加到 protobuf 声明中。请参阅文档(向下滚动一点到“自定义选项”)。

import "google/protobuf/descriptor.proto";

extend google.protobuf.EnumValueOptions {
  optional string name = 51234;
}

enum MyEnum {
  FOO = 0 [(name) = "foo"];
  BAR = 1 [(name) = "bar"];
}

注释通过EnumValueDescriptor接口访问。

于 2015-03-11T08:09:16.603 回答