Аннотация Deprecated
Аннотация Deprecated помечает элемент программы
как устаревший. Это может быть класс, метод, поле,
конструктор или другой элемент. Когда программист
использует помеченный элемент, компилятор выдаёт
предупреждение. В первом параметре через атрибут
since можно указать версию, с которой элемент
признан устаревшим, во втором параметре через атрибут
forRemoval можно указать, будет ли элемент
удалён в будущих версиях. Сама аннотация не удаляет
элемент и не мешает его вызову.
Синтаксис
@Deprecated
@Deprecated(since = "version")
@Deprecated(since = "version", forRemoval = true)
Пример
Давайте пометим метод как устаревший и вызовем его:
public class Main
{
@Deprecated
public static void oldMethod()
{
System.out.println("old method");
}
public static void main(String[] args)
{
oldMethod();
}
}
При компиляции компилятор выдаст предупреждение об использовании устаревшего метода. Результат выполнения кода:
"old method"
Пример
Давайте укажем версию, с которой метод считается
устаревшим, через атрибут since:
public class Main
{
@Deprecated(since = "1.5")
public static int oldSum(int a, int b)
{
return a + b;
}
public static void main(String[] args)
{
int res = oldSum(1, 2);
System.out.println(res);
}
}
Результат выполнения кода:
3
Пример
Давайте укажем, что метод будет удалён в будущем,
через атрибут forRemoval:
public class Main
{
@Deprecated(since = "1.8", forRemoval = true)
public static String oldText()
{
return "abcde";
}
public static void main(String[] args)
{
String res = oldText();
System.out.println(res);
}
}
Результат выполнения кода:
"abcde"
Пример
Давайте подавим предупреждение об устаревшем методе
с помощью аннотации SuppressWarnings:
public class Main
{
@Deprecated
public static void oldMethod()
{
System.out.println("old method");
}
@SuppressWarnings("deprecation")
public static void main(String[] args)
{
oldMethod();
}
}
В этом случае предупреждение при компиляции выведено не будет. Результат выполнения кода:
"old method"
Смотрите также
-
аннотация
Annotation,
которая является базовой для всех аннотаций -
аннотация
Override,
которая проверяет переопределение метода -
аннотация
SuppressWarnings,
которая подавляет предупреждения компилятора -
атрибут
since,
который указывает версию устаревания