Поле forRemoval
Поле forRemoval класса Deprecated используется для указания того,
что помеченный элемент (метод, класс, поле и т.д.) будет удален
в следующих версиях Java. Оно принимает логическое значение:
true, если элемент планируется к удалению, и false,
если элемент просто устарел, но пока не будет удален.
По умолчанию значение равно false.
Данное поле помогает разработчикам отличать просто устаревший код
от кода, который скоро перестанет существовать. Если forRemoval
равно true, компилятор и среды разработки могут выдавать
более строгие предупреждения.
Синтаксис
@Deprecated(forRemoval = true)
// или
@Deprecated(forRemoval = false)
Пример
Давайте объявим метод, который помечен как устаревший и подлежащий удалению в будущем:
public class Main
{
@Deprecated(forRemoval = true)
public static void oldMethod()
{
System.out.println("This method will be removed");
}
public static void main(String[] args)
{
oldMethod();
}
}
При компиляции этого кода компилятор выдаст предупреждение
о том, что метод oldMethod помечен как подлежащий удалению.
Результат выполнения кода:
"This method will be removed"
Пример
Давайте сравним поведение при forRemoval = false
и forRemoval = true:
public class Main
{
@Deprecated(forRemoval = false)
public static void oldButStable()
{
System.out.println("Still usable");
}
@Deprecated(forRemoval = true)
public static void soonRemoved()
{
System.out.println("Will be removed soon");
}
public static void main(String[] args)
{
oldButStable();
soonRemoved();
}
}
В этом примере метод oldButStable вызывает только
стандартное предупреждение об устаревании, а метод
soonRemoved - более строгое предупреждение,
связанное с будущим удалением.
Результат выполнения кода:
"Still usable"
"Will be removed soon"
Смотрите также
-
аннотация
Deprecated,
которая помечает устаревшие элементы -
атрибут
since,
который указывает версию появления устаревания -
аннотация
SuppressWarnings,
которая подавляет предупреждения компилятора -
аннотация
Override,
которая указывает на переопределение метода