如何定义在protobuf的枚举值和id? (原Java客户端)(How to define v

2019-10-22 05:32发布

我是新来的protobuf使用。

我计划写的protobuf高清与它枚举(一个或多个)。

有没有什么办法来提供它的ID,价值,以及描述。

编译后我想生成的枚举应相当于如下面的例子

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;
  }
}

任何帮助是非常赞赏。

Answer 1:

有没有办法准确地产生在你的榜样了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接口。



文章来源: How to define value and id for enum in protobuf? (proto java client)