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