Ray*_* Ho 4 java protocol-buffers
默认 toString 打印 int 值而不是枚举名称。有没有一种简单的方法可以让它打印枚举名称?
(答案适用于proto3)
使用 Carl 的枚举示例:
enum Foo {
BAR = 1;
BAZ = 5;
QUX = 1234;
}
Run Code Online (Sandbox Code Playgroud)
假设您有变量: Foo foo = Foo.BAR, 以获取以下名称foo:
String fooName = foo.getValueDescriptor().getName(); //fooName="BAR"
Run Code Online (Sandbox Code Playgroud)
另见:
https://developers.google.com/protocol-buffers/docs/reference/java-generated#enum
对于以下 protobuf 枚举:
enum Foo {
BAR = 1;
BAZ = 5;
QUX = 1234;
}
Run Code Online (Sandbox Code Playgroud)
文档说:
An integer constant is also generated with the suffix _VALUE for each enum value.
Run Code Online (Sandbox Code Playgroud)
听起来您正在使用常量“例如 BAR_VALUE、BAZ_VALUE 或 QUX_VALUE”。是这样吗?
请参阅:https://developers.google.com/protocol-buffers/docs/reference/java- generated#enum