Я хотів би зробити один із своїх методів "застарілим" = більше не використовуватися.
Але все ж хотілося б, щоб це було в моєму 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