Введение Аннотации в Java
Аннотации были введены или стали доступны в версии 1.5 Java Development Kit (JDK). Аннотации в Java предоставляют больше информации о данных, присутствующих в структуре кода, т.е. это данные о данных, также известные как метаданные.
Что такое аннотации в Java?
Аннотации помогают в определении метаданных в коде стандартизированным способом. Кроме того, аннотации помогают в предоставлении инструкций для вашего Java-компилятора, чтобы следовать при компиляции этого Java-кода.
При использовании аннотаций мы используем знак «@», а затем имя вашей аннотации, чтобы компилятор рассматривал ее как аннотацию. Важно отметить, что аннотации могут быть добавлены до
- Объявление класса
- Объявление переменной члена
- Объявление конструктора
- Объявление метода
- Объявление параметра
- Объявление локальной переменной.
Важно помнить, что все аннотации расширяют интерфейс java.lang.annotation.Annotation. Кроме того, аннотации не могут включать какие-либо предложения extends.
Встроенные аннотации Java
В Java есть встроенные аннотации, такие как @Override, @Deprecated, @SuppressWarnings, которые предназначены для конкретной цели и используются в одной из вышеуказанных ситуаций, например, только для класса или только для метода, и т.п.
Пример № 1 - переопределение
class Dad (
public void say() (
System.out.println("Do your homework");
)
)
public class Child extends Dad (
@Override
public void say()(
System.out.println("I wanna play");
)
public static void main(String args())(
Dad daddy = new Child();
daddy.say();
)
)
Выход
Пример № 2 - устарел
public class Outdated
(
@Deprecated
public void oldShow()
(
System.out.println("This Method is deprecated"); )
public static void main(String args())
(
Outdated od = new Outdated ();
od.oldShow();
)
)
Выход
Мета аннотации
Существует пять типов метааннотаций:
- Документированный - он сообщает, что член, переменная или класс, которые используют эту аннотацию, должны быть документированы Javadoc или любыми другими доступными инструментами.
- Цель. Используется для указания типа аннотации. Он в основном используется вместе с вашими пользовательскими аннотациями.
- Унаследовано - отмечает пометку, которая должна быть унаследована подклассу.
- Сохранение - указывает, как долго аннотации с аннотированным типом должны быть сохранены. Он принимает аргумент политики хранения, возможные значения которого: SOURCE, CLASS и RUNTIME.
- Repeatable - сообщает, что типы аннотаций, чье объявление аннотируется, являются повторяемыми.
Пример - Документация и хранение
import java.lang.annotation.*;
@Retention(RetentionPolicy.RUNTIME)
@interface RSample (
String rentent();
)
@Documented
@interface DSample (
String doc();
)
public class MetaAnnotate (
public static void main(String arg())
(
new MetaAnnotate().rentent();
new MetaAnnotate().doc();
)
@RSample (rentent="Meta Info R")
public void rentent() (
System.out.println("Retention Policy Applied");
)
@DSample(doc="Meta Info D")
public void doc() (
System.out.println("Code Documented with the value");
)
)
Выход
объяснение
RetentionPolicy.RUNTIME - это значение указывает, что значение аннотации должно быть доступно во время выполнения для проверки с помощью java-отражения.
Запустите команду Javadoc для просмотра документации вашего кода.
Типы аннотаций
Есть три категории аннотаций, и они следующие:
1. Маркерные аннотации - эти типы аннотаций используются в качестве объявления, чтобы уведомить разработчика о том, что представляет собой нижеуказанная функция или класс, то есть он предоставляет дополнительную информацию о функции или классе, например, переопределяет ли функция другую функцию или является устаревшей функцией и т. д. @Override, @Deprecated считаются аннотациями маркеров.
Пример: DemoAnnotation ()
2. Аннотации одного значения - этот вид аннотации принимает значение, чтобы указать это значение для того элемента, для которого аннотация размещена перед, и, следовательно, нет необходимости указывать имя этого элемента.
Пример: DemoAnnotation («custId123»)
3. Полные аннотации - этот вид аннотации принимает несколько значений, пар, членов.
Пример: DemoAnnotation (категория = «Игрушки», значение = 1500)
изготовленный на заказ
Пользовательские аннотации создаются пользовательским интерфейсом, за которым следует имя аннотации, как мы увидим в следующем примере.
Файл 1: Определенная пользовательская аннотация
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target((ElementType.TYPE, ElementType.METHOD))
@Retention(RetentionPolicy.RUNTIME)
@interface Magicians
(
String Wizard() default "Reynolds";
String House() default "Green";
)
@Magicians
public class Magician
(
@Magicians(Wizard = "Harry Potter", House = "Red")
public String getString() ( return null; )
)
Файл 2: Основной класс, который вызывает класс пользовательских аннотаций
import java.lang.annotation.Annotation;
import java.lang.reflect.AnnotatedElement;
import java.lang.reflect.Method;
public class MyCustomAnnotation
(
public static void main(String() args) throws NoSuchMethodException, SecurityException
(
new Magician();
Class magic = Magician.class;
readAnnotationOn(magic);
Method method = magic.getMethod("getString", new Class()());
readAnnotationOn(method);
)
static void readAnnotationOn(AnnotatedElement element)
(
try
(
System.out.println("\n Find annotations on " + element.getClass().getName());
Annotation() annotations = element.getAnnotations();
for (Annotation annotation : annotations)
(
if (annotation instanceof Magicians)
(
Magicians mData = (Magicians) annotation;
System.out.println("Wizard Name :" + mData.Wizard());
System.out.println("Wizard House Color :" + mData.House());
)
)
) catch (Exception e)
(
e.printStackTrace();
)
)
)
Выход
Вывод
В этой статье мы узнали о том, что такое java-аннотации и их типы, с примерами, а также увидели примеры встроенных аннотаций, предоставляемых java, и закодировали наши пользовательские аннотации.
Мы узнали, что аннотации полезны при стандартизации кода, а также помогают лучше понять код и его структуру.
Рекомендуемые статьи
Это руководство по аннотациям Java. Здесь мы обсуждаем, как встроить аннотации Java с приведенными примерами и выходами. Вы также можете взглянуть на следующие статьи, чтобы узнать больше -
- Переменные в Java
- Шаблоны в Java
- Быстрая сортировка на Java
- Лучшие компиляторы Java
- instanceOf в Java с примером