У нас есть тип protobuf, в который мы добавили поле, а затем никогда не реализовывали функции, использующие его (поэтому было [deprecated=true]
, чтобы намекнуть, что его не следует использовать). Несколько лет спустя пришло время, и теперь мы do хотим использовать это поле в конце концов.
Безопасно ли просто удалить [deprecated=true]
и начать использовать поле, или это может что-нибудь сломать?
Поле с таким же типом и семантикой уже существует в другом сообщении, поэтому было бы очень хорошо использовать имя, которое мы дали ему изначально, вместо добавления нового поля и раздувания определения с двумя похожими полями.
Редактировать: В разделе руководства по языку proto3 по опциям сказано следующее:
deprecated
(опция поля): если установлено значение true
, означает, что поле устарело и не должно использоваться новым кодом. На большинстве языков это не имеет никакого реального эффекта. В Java это становится аннотацией @Deprecated
. В будущем другие специфичные для языка генераторы кода могут генерировать аннотации устаревания на методах доступа поля, что, в свою очередь, вызовет предупреждение при компиляции кода, который пытается использовать поле. Если поле никем не используется и вы хотите, чтобы новые пользователи не могли его использовать, рассмотрите возможность замены объявления поля оператором reserved .