Я хотел бы сделать один из моих методов "устаревшим" = больше не используется.
Но все же я хотел бы иметь это в своем API. Я просто хочу показать «предупреждение» любому, кто использует этот метод.
Как я могу этого достичь?
Я хотел бы сделать один из моих методов "устаревшим" = больше не используется.
Но все же я хотел бы иметь это в своем API. Я просто хочу показать «предупреждение» любому, кто использует этот метод.
Как я могу этого достичь?
Ответы:
Используйте @Deprecated
по методу. Не забудьте про уточнение поля Javadoc:
/**
* Does some thing in old style.
*
* @deprecated use {@link #new()} instead.
*/
@Deprecated
public void old() {
// ...
}
reason
со значением по умолчанию ""
не могло повредить
@deprecated
сообщение в комментарии могло быть добавлено @Deprecated
(одно место, чтобы исправить их все) ...
Используйте как @Deprecated
аннотацию, так и @deprecated
тег JavaDoc.
@deprecated
JavaDoc тег используется для документирования.
@Deprecated
Аннотации инструктирует компилятор , что метод является устаревшим. Вот что говорится в документе Sun / Oracles на эту тему:
Использование
@Deprecated
аннотации для устаревания класса, метода или поля гарантирует, что все компиляторы будут выдавать предупреждения, когда код использует этот программный элемент. Напротив, нет никакой гарантии, что все компиляторы всегда будут выдавать предупреждения на основе@deprecated
тега Javadoc, хотя компиляторы Sun в настоящее время делают это. Другие компиляторы могут не выдавать такие предупреждения. Таким образом, использование@Deprecated
аннотации для генерации предупреждений более переносимо, чем использование@deprecated
тега Javadoc.
Вы можете найти полный документ в разделе Как и когда не рекомендуется использовать API.
@deprecated
тегом javadoc (в Java 4-), компилятор пометил метод (класс, поле) как устаревший, и в средах IDE появлялись предупреждения, даже когда источник не был доступен.
поскольку некоторые незначительные объяснения отсутствовали
Используйте @Deprecated
аннотацию для метода, подобного этому
/**
* @param basePrice
*
* @deprecated reason this method is deprecated <br/>
* {will be removed in next version} <br/>
* use {@link #setPurchasePrice()} instead like this:
*
*
* <blockquote><pre>
* getProduct().setPurchasePrice(200)
* </pre></blockquote>
*
*/
@Deprecated
public void setBaseprice(int basePrice) {
}
<br/>
{@link #setPurchasePrice()}
Вы можете сделать две вещи:
@Deprecated
аннотацию к методу и@deprecated
тег к javadoc методаВы должны сделать оба !
Цитирую документацию по Java на эту тему:
Начиная с J2SE 5.0, вы осуждаете класс, метод или поле с помощью аннотации @Deprecated. Кроме того, вы можете использовать тег @deprecated Javadoc, чтобы сообщить разработчикам, что использовать вместо этого.
Использование аннотации заставляет компилятор Java генерировать предупреждения при использовании устаревшего класса, метода или поля. Компилятор подавляет предупреждения об устаревании, если устаревший модуль компиляции использует устаревший класс, метод или поле. Это позволяет создавать устаревшие API без создания предупреждений.
Настоятельно рекомендуется использовать тег Javadoc @deprecated с соответствующими комментариями, объясняющими, как использовать новый API. Это гарантирует, что разработчики получат работоспособный путь перехода от старого API к новому API