В Java это @ устарело, в C # это [устарело].
Я думаю, что предпочитаю терминологию C #. Это просто означает, что это устарело. Вы все еще можете использовать его, если хотите, но, возможно, есть лучший способ.
Это похоже на использование Windows 3.1 вместо Windows 7, если вы считаете, что Windows 3.1 устарела. Вы по-прежнему можете использовать его, но в будущей версии, вероятно, будут улучшенные функции, плюс будущие версии, вероятно, будут поддерживаться, а устаревшая - нет.
То же самое для Java @Deprecated - вы все равно можете использовать метод, но на свой страх и риск - в будущем у него могут быть лучшие альтернативы, и он может даже не поддерживаться.
Если вы используете устаревший код, это нормально, если вам не нужно переходить на более новый API - устаревший код там может не существовать. Я предлагаю, если вы видите что-то, что использует устаревший код, для обновления, чтобы использовать более новые альтернативы (это обычно указывается в аннотации или в устаревшем комментарии Javadoc).
Редактировать: И как указывал Майкл, если причина устаревания связана с недостатком функциональности (или потому, что функциональность не должна даже существовать), то, очевидно, не следует использовать устаревший код. *