4

デフォルトの toString は、列挙名の代わりに int 値を出力します。代わりに列挙名を出力する簡単な方法はありますか?

4

3 に答える 3

6

(答えはproto3 です)

Carl の列挙型の例を使用します。

enum Foo {
  BAR = 1;
  BAZ = 5;
  QUX = 1234;
}

Foo foo = Foo.BARの名前を取得する変数: があるとしますfoo:

String fooName = foo.getValueDescriptor().getName(); //fooName="BAR"  

以下も参照してください。

https://developers.google.com/protocol-buffers/docs/reference/java-generated#enum

https://developers.google.com/protocol-buffers/docs/reference/java/com/google/protobuf/Descriptors.EnumDescriptor#getName()

于 2016-08-05T18:39:28.140 に答える
0

次の protobuf 列挙型の場合:

enum Foo {
  BAR = 1;
  BAZ = 5;
  QUX = 1234;
}

ドキュメントは次のように述べています。

An integer constant is also generated with the suffix _VALUE for each enum value.

「BAR_VALUE、BAZ_VALUE、または QUX_VALUE などの定数」を使用しているようです。これは事実ですか?

参照: https://developers.google.com/protocol-buffers/docs/reference/java-generated#enum

于 2013-07-23T03:33:08.133 に答える