取消 protobuf 字段的过时状态是否被允许?

9
我们有一个protobuf类型,我们添加了一个字段,但从未使用该字段的功能(因此它被标记为[deprecated=true],以提示不应使用它)。几年后,现在我们确实想要使用那个字段。
只是删除[deprecated=true]并开始使用该字段安全吗?还是很可能会出现问题?
另一个消息上已经存在具有相同类型和语义的字段,因此最好使用最初给定的名称,而不是添加一个新字段并使定义膨胀为两个类似的字段。
编辑:proto3 language guide section on options中提到:

deprecated(字段选项):如果设置为true,表示该字段已被弃用,新代码不应使用它。在大多数语言中,这实际上没有任何影响。在Java中,这将成为一个@Deprecated注释。将来,其他特定于语言的代码生成器可能会在字段的访问器上生成弃用注释,这将导致在编译试图使用该字段的代码时发出警告。如果没有任何人使用该字段,并且您想防止新用户使用它,请考虑将字段声明替换为reserved语句。

1个回答

5

如果您的客户仍在使用已弃用的字段,他们可能会注意到Java中缺少的弃用警告,但这是唯一需要"注意"的事情。自proto3以来,所有字段都是可选的,因此不应该影响任何内容。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接