Я хотел бы сделать один из моих методов "устаревшим" = больше не используется.
Но все же я хотел бы иметь это в своем 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.
@deprecatedJavaDoc тег используется для документирования.
@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