Java

Для чего в Java нужна аннотация своими словами?

Мастер С
Мастер С
5 846
это костыль для компилятора
Олег Ноженко
Олег Ноженко
74 422
Лучший ответ
т. е. даже прочитав в документации о том что делают аннотации вы так и не поняли для чего они нужны?
Ну аннотация она не обязательно должно что-то компилятору говорить. Она может и в рантайме существовать.
По сути, это некоторая метка специальная, которая очень полезна при использовании разных фреймворков. Банальный пример - в спринге есть аннотация @Transactional. Помечаешь ей метод и он у тебя выполняется под транзакцией.
Ты можешь свою аннотацию написать. А дальше юзать ее, на что хватит фантазии. Например, при создании объекта какого-то, можешь создавать для него прокси объект, который будет перехватывать вызовы всех методов данного объекта и проверять, есть ли над каким-то методом твоя аннотация. Если есть, то делаешь что угодно перед вызовом этого метода, потом делаешь что угодно после вызова этого метода.
Или еще, например, можешь через спринговые аспекты перехватывать методы своих сервисов, которые будут помечены какой-нибудь аннотацией и анализировать их, как тебе нужно.
Это не сложно на самом деле и достаточно интересно, но на начальном этапе об этом можно особо не думать) Данную тему можно изучать потом. Она становится интересной, когда уже немного знаешь из java reflection, что позволяет анализировать класс. А также когда уже знаком с аспектами (AOP) не обязательно спринговыми конечно. Ну и когда знаешь, что такое прокси и как это работает.
Николай Rur
Николай Rur
13 926
Говоришь компилятору на что обратить внимание и по каким правилам
Sergey
Sergey
289