Интерфейс аннотации Deprecated
@Documented @Retention(RUNTIME) @Target({CONSTRUCTOR,FIELD,LOCAL_VARIABLE,METHOD,PACKAGE,MODULE,PARAMETER,TYPE}) public @interface Deprecated @Deprecated, — это элемент, использование которого программистами не рекомендуется. Элемент может быть объявлен устаревшим по разным причинам: например, его использование может привести к ошибкам; он может быть изменён несовместимым образом или удалён в будущей версии; он может быть заменён более новой, обычно предпочтительной альтернативой; либо он может быть устаревшим. Компиляторы выдают предупреждения, если устаревший элемент программы используется или переопределяется в коде, не содержащем устаревших элементов. Использование аннотации @Deprecated при объявлении локальной переменной, параметра или пакета не влияет на предупреждения, выдаваемые компилятором.
Если модуль объявлен устаревшим, его использование в
requires, но не в предложениях exports или opens, приводит к выдаче предупреждения. Объявление модуля устаревшим не приводит к выдаче предупреждений при использовании типов внутри модуля.
Этот тип аннотации содержит элемент со строковым значением since. Значение этого элемента указывает версию, в которой аннотированный элемент программы впервые был объявлен устаревшим.
Этот тип аннотации содержит элемент с логическим значением forRemoval. Значение true указывает на намерение удалить аннотированный элемент программы в будущей версии. Значение false указывает, что использование аннотированного элемента программы не рекомендуется, но на момент его аннотирования не было конкретного намерения удалить его.
- Примечание к API:
- Настоятельно рекомендуется объяснять в документации причину, по которой элемент программы объявляется устаревшим, используя тег Javadoc
@deprecated. В документации также следует предлагать рекомендуемый API на замену и ссылаться на него, если это применимо. API на замену часто имеет незначительно отличающуюся семантику, поэтому такие особенности также следует обсудить.Рекомендуется указывать значение
sinceдля всех вновь аннотируемых элементов программы. Обратите внимание, чтоsinceне может быть обязательным, поскольку существует множество уже имеющихся аннотаций, в которых отсутствует значение этого элемента.Порядок элементов аннотации не определён. С точки зрения стиля элемент
sinceследует указывать первым.Аннотация
@Deprecatedвсегда должна присутствовать, если присутствует тег Javadoc@deprecated, и наоборот. - См. Спецификацию языка Java:
- 9.6.4.6 @Deprecated
- С версии:
- 1.5
Краткое описание необязательных элементов
| Модификатор и тип | Необязательный элемент | Описание |
|---|---|---|
boolean |
forRemoval |
Указывает, подлежит ли аннотированный элемент удалению в будущей версии. |
String |
since |
Возвращает версию, в которой аннотированный элемент был объявлен устаревшим. |
Подробное описание элементов
since
String since
@since. Значение по умолчанию — пустая строка.- Возвращает:
- строку версии
- С версии:
- 9
- По умолчанию:
""
forRemoval
boolean forRemoval
false.- Возвращает:
- подлежит ли элемент удалению
- С версии:
- 9
- По умолчанию:
false
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/lang/Deprecated.html