2016-08-03 43 views
0

我有这样一个原:不同版本的原文件

message Person { 
    required string name = 1; 
    required int32 id = 2; 
    optional string email = 3; 
} 

现在我有另一个字段添加到它,所以它看起来是这样的:

message Person { 
    required string name = 1; 
    required int32 id = 2; 
    optional string email = 3; 
    optional string phone = 4; 
} 

如果我现在反序列化的人说与旧版本序列化唯一的区别是iPhone()将永远是错误的?因此,假设手机将被设置为所有新人,我可以通过hasPhone是真/假来区分它是否是旧/新版本的proto?

+0

为什么你引用我中期的句子? :)它的开始是“所以假设电话将为所有新人设置......”。 – user1985273

+0

对不起。这是一个漫长的夜晚:) –

回答

2

是的,这是正确的。

您也可以使用getPhone()并检查字符串是否为空,因为空字符串是字符串类型字段的默认值。