Введение Аннотации в 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();
)
)

Выход

Мета аннотации

Существует пять типов метааннотаций:

  1. Документированный - он сообщает, что член, переменная или класс, которые используют эту аннотацию, должны быть документированы Javadoc или любыми другими доступными инструментами.
  2. Цель. Используется для указания типа аннотации. Он в основном используется вместе с вашими пользовательскими аннотациями.
  3. Унаследовано - отмечает пометку, которая должна быть унаследована подклассу.
  4. Сохранение - указывает, как долго аннотации с аннотированным типом должны быть сохранены. Он принимает аргумент политики хранения, возможные значения которого: SOURCE, CLASS и RUNTIME.
  5. 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 с приведенными примерами и выходами. Вы также можете взглянуть на следующие статьи, чтобы узнать больше -

  1. Переменные в Java
  2. Шаблоны в Java
  3. Быстрая сортировка на Java
  4. Лучшие компиляторы Java
  5. instanceOf в Java с примером