Аннотации в основном касаются документирования кода или применяются компилятором? - PullRequest
2 голосов
/ 20 апреля 2009
@Deprecated public class Betamax { ... }

В приведенном выше примере, какой эффект имеет @Deprecated? Это чисто документация? Или это что-то меняет в том, как компилятор обрабатывает этот класс?

Ответы [ 2 ]

2 голосов
/ 20 апреля 2009

Компилятор принудительно (как при проверках и кваках) применяет некоторые аннотации (например, @Override).

Но наиболее полезной частью является то, что библиотеки могут предоставлять свои собственные аннотации (например, @Entity или @PersistenceAware), о которых язык Java (ядро JDK) ничего не знает. Это похоже на добавление специфичного для домена синтаксического сахара прямо в язык.

@Deprecated для документации. Он также создает предупреждения компилятора при использовании устаревшего метода (или класса), так же, как старый тег JavaDoc @deprecated.

1 голос
/ 20 апреля 2009

Чисто для документации.

Если вы помечаете что-то как устаревшее, вы указываете пользователю через сгенерированный Javadoc, что этот метод / класс не должен использоваться, например,

Дата (int год, int месяц, int дата): Устаревшее. Начиная с версии 1.1 JDK, заменено Calendar.set (год + 1900, месяц, дата) или GregorianCalendar (год + 1900, месяц, дата).

Если вы помечаете что-то как устаревшее, рекомендуется указать пользователю, что ему следует использовать вместо этого метода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...