Protobuf中的默认枚举值是多少?

时间:2011-03-20 14:34:38

标签: java protocol-buffers

您好 使用Java的Google协议缓冲区中的默认枚举值(如果没有定义任何默认值)是什么?

2 个答案:

答案 0 :(得分:13)

这是.proto命令中定义的第一个。

来自.proto语言指南(因为所有实现都使用相同的逻辑):

  

可选字段和默认值

     

(snip)对于枚举,默认值是枚举类型定义中列出的第一个值。

答案 1 :(得分:4)

来自the official spec

  

可选:该字段可能是也可能不是   组。如果不是可选字段值   set,使用默认值。对于   简单类型,您可以指定自己的类型   默认值,正如我们为此所做的那样   示例中的电话号码类型。   否则,使用系统默认值:   对于数字类型为零,为空   字符串表示字符串,false表示bools。   对于嵌入式消息,默认值   值始终是“默认实例”   或消息的“原型”,即   没有设置任何字段。调用   访问器获取的值   可选(或必需)字段   没有明确设置总是返回   该字段的默认值。

您可以按如下方式设置默认值:

optional PhoneType type = 2 [default = HOME];