Введение в аннотации в Java
Рядом с объявлением класса, метода или поля можно поставить короткую метку. Она не выполняется как обычный код: компилятор читает подпись и может изменить диагностику, проверку типов или правила доступа к элементу.
Запись начинается с символа @ и имени пометки.
Её ставят непосредственно перед объявлением, к которому
относится смысл метки.
В стандартной библиотеке есть @Deprecated - она
сообщает, что объявление лучше не использовать. На
старый метод обрезки заголовка можно повесить такую
пометку:
class TitleHelper {
@Deprecated
static String legacyCaption(String raw) {
return raw.trim();
}
static String trimTitle(String raw) {
return raw.trim();
}
}
Если в программе остаётся вызов устаревшего метода, компилятор не обязательно останавливает сборку - часто достаточно предупреждения в отчёте. Проверить это можно на простом входе в программу:
class TitleHelper {
@Deprecated
static String legacyCaption(String raw) {
return raw.trim();
}
static String trimTitle(String raw) {
return raw.trim();
}
}
public class Main {
public static void main(String[] args) {
String text = TitleHelper.legacyCaption(" note ");
System.out.println(text);
}
}
Программа собирается и печатает строку без пробелов по краям, но рядом с вызовом появляется предупреждение об устаревшем API. Смысл аннотации именно в такой обратной связи от компилятора, а не в отдельном шаге во время выполнения.
Другие готовые пометки задают правила для фреймворков, подавляют предупреждения или связывают объявление с документацией. У каждой метки свой смысл, но модель одна: компилятор видит подпись рядом с объявлением и действует по её правилам.